この記事では、PowerShellのスクリプト実行ポリシーについて説明します。
PowerShellのスクリプト実行ポリシーとは
PowerShellには、セキュリティ向上のためにスクリプトの実行を制限する「スクリプト実行ポリシー」があります。
スクリプト実行ポリシーが適切に設定されていない場合、環境を設定するプロファイル(profile.ps1など)やスクリプトを実行できません。
そのため、スクリプトを実行するには、スクリプト実行ポリシーを変更しておく必要があります。
PowerShellに設定可能な実行ポリシー
実行ポリシー | 説明 |
Restricted | スクリプトの実行を行いません。 |
AllSigned | 署名付きスクリプトは実行できます。 |
RemoteSigned | 署名付きスクリプト、ローカル保存の自作スクリプトは実行できます。 |
Unrestricted | すべての構成ファイルを読み込み、すべてのスクリプトが実行できます。 ただし、インターネットからダウンロードした未署名のスクリプトは実行するかどうか確認を求められる。 |
ByPass | 何もブロックされずに警告もメッセージも表示されません。 |
Undefined | 未定義の状態。 スクリプト実行ポリシーがUndefinedの場合、既定のスクリプト実行ポリシーが有効なスクリプト実行ポリシーになる。 |
デフォルトではスクリプトの実行はできないようになっています。そのため、スクリプト実行ポリシーを変更する必要があります。
スクリプト実行ポリシーの確認、変更
PowerShellの現在のスクリプト実行ポリシーは、「Get-ExecutionPolicy」コマンドレットで確認できます。
PS> Get-ExecutionPolicy Restricted
現在のスクリプト実行ポリシーが「Restricted」の場合はスクリプトを実行できないため、「Set-ExecutionPolicy」コマンドレットで、「AllSigned」、「RemoteSigned」、「Unrestricted」、「ByPass」の何れかに変更します。
PS> Set-ExecutionPolicy RemoteSigned PS> Get-ExecutionPolicy RemoteSigned
※レジとりへのアクセスが拒否されたことを示すエラーメッセージが表示された場合は、管理者としてPowerShellを起動します。
まとめ
今回はPowerShellのスクリプト実行ポリシーついて説明しました。
コマンドプロンプトよりもできることが幅広いので、このようなセキュリティが設定されています。