PowerShell说"在这个系统上禁用脚本的执行&quot。

我试图运行一个[tag:cmd]文件,该文件从cmd.exe调用一个[tag:powershell]脚本,但我得到了以下错误。

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:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1不能被加载,因为在这个系统中脚本的执行被禁止。请参阅"get-help about_signing"了解更多细节。

在行:1 char:25

  • .Management_Install.ps1` <<<< 1
  • CategoryInfo : 未指定。(:) [], 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 2008R2,那么有一个_x64_和_x86_版本的PowerShell,它们都必须设置其执行策略。你在两台主机上都设置了执行策略吗?

作为一个管理员,你可以通过在PowerShell窗口中输入这个来设置执行策略。

Set-ExecutionPolicy RemoteSigned

更多信息,请参阅使用Set-ExecutionPolicy Cmdlet

评论(6)

你可以通过在运行PowerShell时添加 "ExecutionPolicy ByPass "来绕过这一策略。

powershell -ExecutionPolicy ByPass -File script.ps1
评论(5)

RemoteSigned:所有你自己创建的脚本都将被运行,所有从互联网上下载的脚本都需要由一个受信任的发布者签名。

好了,通过简单的键入来改变策略。

Set-ExecutionPolicy RemoteSigned
评论(1)