PowerShell显示“此系统上禁用了脚本执行”。

发布时间 2023-11-05 21:56:24作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=PowerShell显示“此系统上禁用了脚本执行”。

你正在尝试在cmd.exe中运行一个调用PowerShell脚本的cmd文件,但是遇到了这个错误:

Management_Install.ps1无法加载,因为此系统禁止执行脚本。

你已经运行了这个命令:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

当你在PowerShell中运行Get-ExecutionPolicy时,它返回Unrestricted

Get-ExecutionPolicy

输出:

Unrestricted

问题出在你尝试在64位的PowerShell中运行32位的脚本。你需要在32位的PowerShell中运行这个脚本。请按照以下步骤操作:

  1. 打开“开始”菜单,搜索“Windows PowerShell”,然后右键点击“Windows PowerShell”,选择“以管理员身份运行”。
  2. 在32位的PowerShell窗口中,重新运行以下命令:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  1. 现在再次尝试运行你的脚本:
cd "C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts"
powershell .\Management\_Install.ps1 1

如果你正在使用 Windows Server 2008 R2,那么有 x64x86 两个版本的 PowerShell,它们都需要设置执行策略。你是否已经在两台主机上设置了执行策略?

作为管理员,你可以通过在 PowerShell 窗口中输入以下命令来设置执行策略:

Set-ExecutionPolicy RemoteSigned

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

完成后,你可以将策略恢复为默认值,方法是:

Set-ExecutionPolicy Restricted

你可能会遇到以下错误:

无法访问注册表键
'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1ShellIds\Microsoft.PowerShell'。
要更改默认(LocalMachine)范围的执行策略,请以管理员身份启动 Windows PowerShell。
要更改当前用户的执行策略,请运行 "Set-ExecutionPolicy -Scope CurrentUser"。

因此,你可能需要像这样运行命令(如注释所示):

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser