我尝试为我的 powershell 环境创建一个终极设置。
我创建了“Microsoft.PowerShell_profiles.ps1”并使用一系列语句来设置我的默认配置文件。
但是,当我启动 PowerShell 会话时,我得到:
File C:\Documents and Settings\xxx\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded. The file C:\Documents and Settings\xxx\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 is not digitally signed. The script will not execute on the system.
答案1
最简单的解决办法是
Set-ExecutionPolicy RemoteSigned
但这将运行本地磁盘上的所有脚本(而不是在远程区域 - 例如通过 IE 下载的脚本)
答案2
默认情况下,Powershell 会限制您运行“不安全”的脚本。运行该get-executionpolicy
命令以查看您的系统级别。要降低限制,您可以运行Set-ExecutionPolicy
以下命令之一并将其作为参数:
- 受限制的– 无法运行任何脚本。Windows PowerShell 只能在交互模式下使用。
- 全部已签名– 仅可运行由受信任的发布者签名的脚本。
- 远程签名– 下载的脚本必须经过受信任的发布者签名才能运行。
- 不受限制– 没有限制;所有 Windows PowerShell 脚本都可以运行。
还可以阅读 Scott Hanselman 的智慧之言签署 Powershell 脚本。
答案3
这里有 3 个选项,您可以让受信任的提供商或至少您信任的提供商对您的脚本进行签名,或者您可以使用 Set-ExecutionPolicy 将 powershell 设置为允许外部脚本,方法如下:
Set-ExecutionPolicy RemoteSigned
将在本地机器上运行任何非来自互联网的脚本
Set-ExecutionPolicy Unrestricted
将允许任何脚本运行,但如果您从互联网上下载它,它会要求您确认是否要运行它。
最后,您可以右键点击文件,然后单击“属性”,设置要运行的特定脚本。在对话框底部单击“解除阻止”。