PowerShell说“在这个系统上禁止执行脚本。”

我试图运行一个.cmd文件,从命令提示符处调用PowerShell脚本,并且出现以下错误:

Management_Install.ps1无法加载,因为在此系统上禁用了脚本的执行。

我已经运行set-executionpolicy unrestricted ,当我从PowerShell运行get-executionpolicy ,我unrestricted返回。

//从Powershell输出

PS C: Users Administrator> get-executionpolicy

无限制

//从DOS输出

C: Projects Microsoft.Practices.ESB Source Samples Management Portal Install Scr

ipts> powershell。 Management_Install.ps1 1

警告:运行x86 PowerShell ...

文件C: Projects Microsoft.Practices.ESB Source Samples Management Portal Install Scripts Management_Install.ps1无法加载,因为在此系统上禁用了脚本的执行。 有关更多详细信息,请参阅“get-help about_signing”。

在线:1个字符:25

  • 。 Management_Install.ps1 <<<< 1

  • CategoryInfo:NotSpecified:(:) [],PSSecurityException

  • FullyQualifiedErrorId:RuntimeException

  • C: Projects Microsoft.Practices.ESB Source Samples Management Portal Install Scripts>暂停

    按任意键继续 。 。 。

    该系统是Windows Server 2008 R2。

    我究竟做错了什么?


    如果您使用的是Windows Server 2008 R2,则需要有一个x64和x86版本的PowerShell,两者都必须设置其执行策略。 您是否在两台主机上都设置了执行策略?

    作为管理员,您可以通过在PowerShell窗口中键入以下内容来设置执行策略:

    Set-ExecutionPolicy RemoteSigned
    

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


    您可以通过在运行PowerShell时添加-ExecutionPolicy ByPass来绕过此策略

    powershell -ExecutionPolicy ByPass -File script.ps1
    

    我有类似的问题,并指出Windows Server 2012上的默认cmd运行的是x64。

    对于Windows 7Windows 8Windows Server 2008 R2Windows Server 2012 ,以管理员身份运行以下命令:

    x86(32位)
    打开C:WindowsSysWOW64cmd.exe
    运行命令powershell Set-ExecutionPolicy RemoteSigned

    x64(64位)
    打开C:Windowssystem32cmd.exe
    运行命令powershell Set-ExecutionPolicy RemoteSigned

    您可以使用检查模式

  • 在CMD中: echo %PROCESSOR_ARCHITECTURE%
  • 在Powershell中: [Environment]::Is64BitProcess
  • 参考文献:
    MSDN - Windows PowerShell执行策略
    Windows - 32位和64位目录的说明

    链接地址: http://www.djcxy.com/p/4945.html

    上一篇: PowerShell says "execution of scripts is disabled on this system."

    下一篇: PowerShell script to return versions of .NET Framework on a machine?