PowerShellが実行できない場合の対応方法をご紹介します。
実行できない時のエラーメッセージ
実行ポリシーに引っ掛かる状態でスクリプトファイルを実行しようとすると下記のようなエラーメッセージが表示されます。
1 2 3 |
.\kamo.ps1 このシステムではスクリプトの実行が無効になっているため、 .\kamo.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル C:\kamo.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。 |
エラーになる理由
実行ポリシーの設定によって、スクリプトの実行を無効にしているためです。Powershell のデフォルト設定は、スクリプトの実行を許可しない実行ポリシーになっています。これによって、管理者が気が付かない間にスクリプトが実行されることを防いでいます。
実行ポリシーの種類
PowerShell の実行ポリシーには、以下の4つの種類があります。通常は RemoteSigned であれば、スクリプトが実行できます。
引数 | ローカル | リモート |
Restricted | × | × |
AllSigned | 署名付きのみ〇 | 署名付きのみ〇 |
RemoteSigned | 〇 | 署名付きのみ〇 |
Unrestricted | 〇 | – |
※ローカル:ローカル上のps1
※リモート:インターネットからDLしてきたps1、または別サーバ上のps1
現在の実行ポリシーの確認方法PowerShell で以下のコマンドを実行します。
1 |
Get-ExecutionPolicy |
スクリプト実行手順
1. Powershellを管理者権限で起動
2. 実行ポリシーを変更(RemoteSigned に変更)
1 |
Set-ExecutionPolicy Unrestricted |
3. スクリプトファイル実行
※実行するか聞かれた場合は、「R」を入力して、ENTERを押下する。
(「R」は「一度だけ実行する」の意味です。)
4. 実行ポリシーを戻す(Restricted に戻す)
1 |
Set-ExecutionPolicy Restricted |