PowerShellスクリプトの実行
スタートアップタスクでのPowerShellの実行について少し触れておきたいと思います。
PowerShellのスクリプトファイルは、BOMが付加されていても問題なく実行できます。また、PowerShellの実行ポリシーは、既定でRestricted(スクリプトの実行禁止)になっており、PowerShellスクリプトの実行に先立って実行ポリシーを変更する必要があります。
リスト12は、PowerShellを実行するためのスクリプトファイル例です。*1は、PowerShellの実行に先立って、実行ポリシーを変更します。*2は、PowerShellスクリプトを実行します。
@echo off cd /d %~dp0 powershell -command "Set-ExecutionPolicy Unrestricted" *1 powershell .\startup.ps1 *2 exit /b 0
Windows AzureのゲストOSによって搭載されているPowerShellのバージョンが異なるため注意が必要です。ゲストOSとPowerShellのバージョンの対応は、以下のとおりです。
ゲストOS | ベースOS | PowerShellのバージョン |
1.x | Windows 2008 Server SP2 | 1.0 |
2.x | Windows 2008 Server R2 | 2.0 |
PowerShellの実行ポリシーを変更するためには、管理者権限が必要です。スタートアップタスクのexecutionContextにはelevatedを指定して管理者権限で実行する必要があります。
まとめ
権限昇格機能によって与えられる管理者権限によって、Windows Azureの可能性が大きく広がりました。Windowsをカスタマイズしようとしたら管理者権限は必須だからです。
さらにスタートアップタスクによって、Windows Azureの特徴であるPaaSのメリットを享受しつつ、より柔軟なロールを構成することができるようになり、Azureで提供できるサービス幅が広がったといえるでしょう。ぜひ本機能を試してみてください。