PowerShellのExecution Policy設定
PowerShellスクリプトを実行すると以下のようなエラーが表示される場合があります。
.\hogehoge.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル C:\hogehoge.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/ ?LinkID=135170) を参照してください。 発生場所 行:1 文字:1 + .\hogehoge.ps1 + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
.ps1ファイルの実行は、PowerShellの「実行ポリシー (Execution Policy)」で制御されています。上記のエラーは実行ポリシーが適切でないために表示されます。
現在のExecution Policyは以下のコマンドレットを実行すると確認できます。
PS C:\> Get-ExecutionPolicy Restricted
ポリシーにはいくつか種類があります。詳しくはMicrosoft公式を参照してください。
今回は RemoteSigned に変更します(PowerShellスクリプトの実行時に引数として Execution Policy を指定する方法もありますが、面倒なので…)
そうすることで以下の状態となります。
PowerShellを「管理者として実行」し、以下の通りにコマンドレットを実行します。
PS C:\> Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"):