PowerShellは、"execute of scripts is disabled on this system.&quotと表示されます。

cmd.exe`から[tag:powershell]スクリプトを呼び出す[tag:cmd]ファイルを実行しようとしているのですが、以下のようなエラーが発生します。

このシステムではスクリプトの実行が禁止されているため、Management_Install.ps1 を読み込むことができません」と表示されます。

私は以下を実行しました。

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

を実行し、[tag:powershell]からGet-ExecutionPolicyを実行すると、Unrestrictedが返ってきます。

PS C:\Users\Administrator\> Get-ExecutionPolicy
Unrestricted

C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\> powershell .\Management_Install.ps1 1

WARNING: Running x86 PowerShell...

ファイル C:001:00-001:00 は、スクリプトの実行が禁止されているため、読み込むことができません。詳しくは、"get-help about_signing"をご覧ください。

1行目の文字数:25文字

  • CategoryInfo : NotSpecified:(:) [], PSSecurityException
  • FullyQualifiedErrorId : RuntimeException
C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\> PAUSE

Press any key to continue . . .

システムはWindows Server 2008R2です。

何が間違っているのでしょうか?

ソリューション

Windows Server 2008]1 R2を使用している場合、PowerShellには_x64_版と_x86_版があり、どちらも実行ポリシーを設定する必要があります。両方のホストで実行ポリシーを設定しましたか?

管理者であれば、PowerShellウィンドウに次のように入力して実行ポリシーを設定することができます。

Set-ExecutionPolicy RemoteSigned

詳細については、Using the Set-ExecutionPolicy Cmdletを参照してください。

解説 (6)

PowerShellの実行時に-ExecutionPolicy ByPassを追加することで、このポリシーを回避することができます。

powershell -ExecutionPolicy ByPass -File script.ps1
解説 (5)

RemoteSigned:自分で作成したすべてのスクリプトが実行され、インターネットからダウンロードしたすべてのスクリプトには、信頼できる発行者の署名が必要です。

OK、ポリシーを変更するには、単純に次のように入力します。

Set-ExecutionPolicy RemoteSigned
解説 (1)