你正在尝试在cmd.exe
中运行一个调用PowerShell脚本的cmd
文件,但是遇到了这个错误:
Management_Install.ps1
无法加载,因为此系统禁止执行脚本。
你已经运行了这个命令:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
当你在PowerShell中运行Get-ExecutionPolicy
时,它返回Unrestricted
。
Get-ExecutionPolicy
输出:
Unrestricted
问题出在你尝试在64位的PowerShell中运行32位的脚本。你需要在32位的PowerShell中运行这个脚本。请按照以下步骤操作:
- 打开“开始”菜单,搜索“Windows PowerShell”,然后右键点击“Windows PowerShell”,选择“以管理员身份运行”。
- 在32位的PowerShell窗口中,重新运行以下命令:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
- 现在再次尝试运行你的脚本:
cd "C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts"
powershell .\Management\_Install.ps1 1
如果你正在使用 Windows Server 2008 R2,那么有 x64 和 x86 两个版本的 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
标签:脚本,Set,禁用,ExecutionPolicy,执行,PowerShell,运行
From: https://www.cnblogs.com/xiaomandujia/p/17811287.html