PowerShellのスクリプトを実行する実行ポリシーの設定について

2015-03-20

PowerShellのスクリプトを実行する実行ポリシーの設定について

PowerShellはスクリプトの実行に対して制限がされています。

今まで「.bat」等のスクリプトファイルは、悪意のあるファイルとしてインストールされて利用者が気づかないうちに実行されるというセキュリティの問題がありました。

この問題を解決するためにPowerShellのファイル「.ps1」は実行ポリシーでスクリプト実行の制限をしています。

デフォルトの実行ポリシーは「Restricted」(全てのスクリプトが実行禁止)で設定されており、実行ポリシーを変更しない限りスクリプトの実行は不可能です。

もし、PowerShellのスクリプトを実行したい場合は、実行ポリシーを変更する必要があります。

ポリシーは4つ用意されており、実行環境に合わせた設定が可能になっています。

実行ポリシー設定内容
Restrictedデフォルトの設定。全てのスクリプトファイルの実行を禁止。
AllSigned署名されているスクリプトのみ実行可能。
RemoteSignedローカルのスクリプトファイルは実行可能。
非ローカルのスクリプトは、署名されているスクリプトファイルのみ実行可能。
Unrestrictedローカル・非ローカルのスクリプトファイルが実行可能。
ただし、非ローカルのスクリプトファイルの場合、ユーザーに実行確認をとり、
許可した場合のみ実行可能。

以下に実行ポリシーを確認・変更するためのコマンドレットを記載しています。

デフォルトではPowerShellのスクリプトファイルは実行不可となっているため、設定を変更する必要があります。

設定

01-01

実行ポリシーを変更する際は、管理者権限でなければ変更できないため、「管理者として実行」でPowerShellを起動すること。

01-02

現在の実行ポリシーを変更するコマンドレット
Get-ExecutionPolicy

実行ポリシーを変更するコマンドレット
Set-ExecutionPolicy

(例)Set-ExecutionPolicy RemoteSigned

01-03