このトピックは、ChatGPT を使用してスクリプトアクションを生成する方法のサンプルです。
注記
注: または、こちらからプロンプトをダウンロードできます。ダウンロード後、プロンプトを ChatGPT または Bard に直接コピー&ペーストできます。
ヒント
ヒント: スクリプトに達成してほしいことについて、できるだけ具体的に記述する必要があります。さらに、スクリプトを Azure Runbook のスクリプトアクションとして実行したい場合は、それをプロンプトに含める必要があります。
ステップ 3:ステップ 1: 既存のスクリプトアクションを見つけて、それをサンプルとして使用します。
-
Nerdio Manager で、エンドポイント > Automation > Scripted Actions > Windows スクリプト に移動してください。
-
作業するスクリプトアクションを特定します。たとえば、スクリプトアクションギャラリーから [WVD 用の Microsoft Edge を最適化する] を選択します。
-
ChatGPT:
-
入力:入力: こちらは Nerdio Manager for Enterprise からのサンプルスクリプトアクションです <body of the script>。このスクリプトを微調整するための一連のプロンプトを提供します。
注記
注: これは、上記のスクリプトアクションギャラリーから選択したスクリプトの本文です。
-
出力:素晴らしいです!スクリプトが手に入ったので、あなたのプロンプトに従って微調整する準備ができました。どうぞ、あなたが言及した一連のプロンプトを提供してください。
-
ステップ 3:ステップ 2: 上記の表をコンテキストとして提供します。
-
入力:入力: こちらは、Scripted Actions で利用可能なさまざまなグローバル変数を説明する表です。<table body as text> 。必要かどうかわかりませんが、念のため覚えておいてください。
-
出力:承知しました。これらのグローバル変数をスクリプトで利用することで、環境に合わせた柔軟な対応が可能になります。提供されたスクリプトを見る限り、実行中のマシンで Microsoft Edge のポリシーをローカルに設定しているため、これらの変数は不要です。
ステップ 3:ここから、楽しい時間が始まります。
-
入力:入力: Edge のパフォーマンス向上のために追加の最適化をお願いします。
-
出力:
ステップ 3:ステップ 4: すべてのスクリプトアクションは、その機能の説明を含むコメント行から開始する必要があります。
-
入力:入力: スクリプトアクションに対して行った変更を考慮し、その説明を更新してください。
-
出力:
ステップ 3:ステップ 5: 次の行には、スクリプトアクションの整理のためのタグを含めることができます。
例: #タグ:Nerdio、プレビュー。
-
入力:入力: 新しい変更を含めるようにタグを更新してください。
-
出力:
ステップ 3:ログを追加してください。
-
入力:
この変数構文を使用して "<# Variables: {
"VNetName": {
説明一時 VM を作成する VNetAVD ホストの VNet と同じである可能性があります。FSLogix ファイル共有にアクセスできる必要があります。",
"IsRequired": false
#>" スクリプトに、その変数を Windows イベントログに記録する行を追加してください。その変数は必須であり、説明が付与されます。
-
出力:
ステップ 3:ステップ 7: ChatGPT は最新の "質問" のみを表示するように設定されているため、完全なコードが必要であることを明確に伝えてください。
-
入力:完全なスクリプトを見せてもらえますか?
-
出力:
注記
注: 完全なソースについては、「付録 A」を参照してください。
ステップ 3:変数名を更新してください。
たとえば、この例の現在の変数名は VNetName です。
-
入力:入力: VNetName を LogString に変更してください。
-
出力:
ステップ 3:ChatGPT にスクリプトの説明を依頼してください。
ヒント
ヒント: 満足のいくスクリプトアクションが作成できたら、ChatGPT にスクリプトを説明するように依頼するのが、お勧めの方法です。これにより、バグや論理エラー、タイプミスを見つけることができます。
-
入力:入力: スクリプトを説明し、潜在的なエラーや改善点を特定してください。
-
出力:出力: このケースでは、ChatGPT は正確な説明を生成し、7 つの改善点を特定します。
注記
注: 簡潔さのために、詳細なフィードバックはここでは提供されていません。これからテストに移ります。
ステップ 3:ステップ 10: 生成された PowerShell スクリプトをテストホストプールに配置します。
スクリプトアクションは、タスクの自動化、ソフトウェアのデプロイ、設定の変更、問題のトラブルシューティングに使用できます。この記事では、スクリプトアクションの作成プロセスを効率化するために ChatGPT を活用しました。ChatGPT やその他の AI テクノロジーを活用したスクリプトアクションの生成についても、引き続きお試しいただくことをお勧めします。
こちらがスクリプトアクションの完全なソースです。
#description: (PREVIEW) Configures policy settings for Microsoft Edge to optimize performance in AVD
#tags: Nerdio, Preview, Edge, PerformanceOptimization, SleepingTabs, StartupBoost, DisableHardwareAcceleration, MaxRasterThreads, DisableBackgroundApps
<# Variables:
{
"VNetName": {
"Description": "VNet in which to create the temp VM. Can be same as AVD host vnet. Must be able to access the fslogix fileshare.",
"IsRequired": true
}
#>
<#
Notes:
This script configures policy settings for Microsoft Edge to optimize performance in Azure Virtual Desktop (AVD) environments.
Policies Set:
- Enable Sleeping Tabs ("sleep" inactive browser tabs)
- Enable Startup Boost (preload MS Edge in the background on login)
- Disable Hardware Acceleration (may improve performance on systems with limited resources)
- Set Maximum Raster Threads to 2 (limits the CPU usage of Edge, adjust based on system's CPU resources)
- Disable running background apps when Edge is closed (frees up resources when Edge is not in use)
#>
# Set registry settings
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge /v "SleepingTabsEnabled" /t REG_DWORD /d 1 /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge /v "StartupBoostEnabled" /t REG_DWORD /d 1 /f
# Additional performance optimizations
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge /v "HardwareAccelerationModeEnabled" /t REG_DWORD /d 0 /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge /v "MaxRasterThreads" /t REG_DWORD /d 2 /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge /v "ContinueRunningBackgroundAppsWhenMicrosoftEdgeIsClosed" /t REG_DWORD /d 0 /f
# Log VNetName to the Windows Event Log
$VNetName = Get-Variable -Name "VNetName" -ValueOnly
if (![string]::IsNullOrEmpty($VNetName)) {
Write-EventLog -LogName Application -Source "Nerdio Script" -EntryType Information -EventID 1000 -Message "VNetName is: $VNetName"
}
else {
Write-Host "VNetName variable is not set."
}
コメント (0件のコメント)