PowerShell でスクリプトが実行できない

0
5430
views

PowerShell でスクリプトを実行するには、実行ポリシーの変更が必要です。

実行できない時のエラーメッセージ

実行ポリシーに引っ掛かる状態でスクリプトファイルを実行しようとすると下記のようなエラーメッセージが表示されます。

.\hige.ps1
このシステムではスクリプトの実行が無効になっているため、
ファイル C:\hoge\hage\hige.ps1 を読み込むことができません。詳細については、
「about_Execution_Policies」(http://go.microsoft.com/fwlink/?LinkID=135170) 
を参照してください。

エラーになる理由

実行ポリシーの設定によって、スクリプトの実行を無効にしているためです。Powershell のデフォルト設定は、スクリプトの実行を許可しない実行ポリシーになっています。これによって、管理者が気が付かない間にスクリプトが実行されることを防いでいます。

実行ポリシーの種類

PowerShell の実行ポリシーには、以下の4つの種類があります。通常は RemoteSigned であれば、スクリプトが実行できます。

引数 ローカル リモート
Restricted × ×
AllSigned 署名付きのみ〇 署名付きのみ〇
RemoteSigned 署名付きのみ〇
Unrestricted

※ローカル:ローカル上のps1
※リモート:インターネットからDLしてきたps1、または別サーバ上のps1

現在の実行ポリシーの確認方法

PowerShell で以下のコマンドを実行します。

Get-ExecutionPolicy

スクリプト実行手順

1. Powershellを管理者権限で起動

2. 実行ポリシーを変更(RemoteSigned に変更)

Set-ExecutionPolicy RemoteSigned ⇒yes

3. 目的のスクリプトファイルを実行

4. 実行ポリシーを戻す(Restricted に戻す)

Set-ExecutionPolicy Restricted ⇒yes