2009/03/08

Windows PowerShell で外部スクリプトを実行する


Windows PowerShell は、デフォルトでは外部スクリプトの実行が無効になっています。

下記の簡単なコマンドを、c:\script\Hello.ps1 として保存します。

Write-Host "Hello!"

そして、このスクリプトを実行すると以下のようなエラーが表示されます。

PS C:\script> .\Hello.ps1
スクリプトの実行がシステムで無効になっているため、ファイル C:\script\Hello.ps1 を読み込めません。詳細については、「get-help about_signing」と入力してヘルプを参照してください。
発生場所 行:1 文字:11
+ .\Hello.ps1 <<<<

外部スクリプトの実行を許可するには、 Set-ExecutionPolicy コマンドで権限レベルを指定します。指定できる内容は以下のものになります(ヘルプより)。

-- Restricted :  構成ファイルの読み込みやスクリプトの実行を行いません。 既定値は "Restricted" です。

-- AllSigned :  すべてのスクリプトと構成ファイルが信頼された発行元によって署名されていることを要求します (ユーザーがローカル コンピュータに書き込むスクリプトを含む)。

-- RemoteSigned :  インターネットからダウンロードされたすべてのスクリプトおよび構成ファイルが、信頼された発行元によって署名されていることを要求します。

-- Unrestricted :  すべての構成ファイルを読み込み、すべてのスクリプトを実行します。 インターネットからダウンロードされた署名されていないスクリプトを実行する場合、スクリプトを実行する前に確認を求められます。

全てのスクリプトを実行するには、以下のコマンドを実行します。

PS C:\script> set-executionpolicy unrestricted

この状態で外部スクリプトの実行すると以下のようになります。

PS C:\script> .\Hello.ps1
Hello!

作業が終わったら、設定を元に戻しておきます。

PS C:\script> set-executionpolicy restricted

 

■関連エントリー


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

コメントを書く



プロフィール