ChatGPTを使ってScripted Actionsを生成する
このトピックは、ChatGPTを使ってScripted Actionsを生成する方法のサンプルです。
注意: 代わりに、こちらからプロンプトをダウンロードできます。その後、プロンプトをChatGPTまたはBardに直接コピー&ペーストできます。
ヒント: スクリプトが達成することについて、できるだけ具体的に記述する必要があります。さらに、スクリプトをAzure RunbookのScripted Actionsとして実行したい場合は、それをプロンプトに含める必要があります。
ステップ1: 既存のScripted Actionsを見つけて、それをサンプルとして使用します。
Nerdio Managerで、Scripted Actions > Windows スクリプトに移動します。
作業したいScripted Actionsを見つけてください。例えば、Scripted ActionsギャラリーからWVD用のMicrosoft Edgeを最適化するを選択します。
-
ChatGPT:
-
入力: こちらはNerdio Manager for EnterpriseからのサンプルScripted Actionsです。<body of the script>このスクリプトを微調整するための一連のプロンプトを提供します。
注意: これは、上記のScripted Actionsギャラリーから選択したスクリプトの本文です。
出力: 素晴らしい!スクリプトが手に入ったので、あなたのプロンプトに従って微調整する準備ができました。どうぞ、あなたが言及した一連のプロンプトを提供してください。
-
入力: Scripted Actionsで利用可能なさまざまなグローバル変数を説明する表です。<table body as text>必要かどうかわかりませんが、念のため覚えておいてください。
出力: 理解しました。これらのグローバル変数をスクリプトで利用することで、環境に合わせた柔軟な対応が可能になります。提供されたスクリプトを見る限り、実行中のマシンでMicrosoft Edgeのポリシーをローカルに設定しているため、これらの変数は不要です。
入力: Edgeのパフォーマンス向上のために追加の最適化をお願いします。
-
出力:
ステップ4: すべてのScripted Actionsは、その機能の説明を含むコメント行から開始する必要があります。
入力: Scripted Actionsに対して行った変更を考慮し、その説明を更新してください。
-
出力:
ステップ5: 次の行には、Scripted Actionsの整理のためのタグを含めることができます。
例えば: #tags: Nerdio, Preview。
入力: 新しい変更を含めるようにタグを更新してください。
-
出力:
-
入力:
ここでの変数構文を使用して "<# 変数: {"
"VNetName": {
"説明": "一時VMを作成するVNet。AVDホストのVNetと同じである可能性があります。FSLogixファイル共有にアクセスできる必要があります。
"IsRequired": false
#>" という行を追加して、その変数をWindowsイベントログに記録してください。その変数は必須であり、説明が付与されます。
-
出力:
ステップ7: ChatGPTは最後の「依頼」だけを表示することに決めたため、完全なコードの必要性を明確にしています。
入力: 完全なスクリプトを見せていただけますか。
-
出力:
注意: 完全なソースについては付録Aを参照してください。
例えば、例の現在の変数名はVNetNameです。
入力: VNetNameをLogStringに変更してください。
-
出力:
ステップ9: ChatGPTにスクリプトを説明するように依頼してください。
ヒント 満足のいくScripted Actionsができたら、ChatGPTにスクリプトを説明するように依頼するのがお勧めの方法です。これにより、バグや論理エラー、タイプミスを見つけることができます。
入力: スクリプトを説明し、潜在的なエラーや改善点を特定してください。
-
出力: 私たちの場合、ChatGPTは正確な説明を生成し、7つの改善点を特定します。
注意: 簡潔さのために、詳細なフィードバックはここでは提供されていません。これからテストに移ります。
ステップ10: 生成されたPowerShellスクリプトをテストホストプールに配置してください。
結論
Scripted Action は、タスクの自動化、ソフトウェアのデプロイ、設定の変更、問題のトラブルシューティングに使用できます。この記事では、Scripted Actionsの作成プロセスを効率化するためにChatGPTを活用しました。皆さんがChatGPTやその他のAI技術を使ってScripted Actionsの生成を引き続き探求していただけることをお勧めします。
付録A
こちらがScripted Actionsの完全なソースです。
#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件のコメント)