启动PowerShell主机(powershell.exe,PowerShellISE,NuGet包管理器控制台等)时,我收到以下错误消息.
无法加载文件C:\ Users\MyUserName\Documents\WindowsPowerShell\profile.ps1,因为其操作被软件限制策略阻止.有关更多信息,请与系统管理员联系.
在NuGet包管理器控制台的情况下,这尤其成问题,因为控制台在错误之后处于禁用/不可用状态.至少可以使用其他PowerShell主机.
我有问题在几个星期前,在新的工作岗位设置时,我的工作站,因为组策略设置被应用MachinePolicy的是AllSigned.通过将设置更改为RemoteSigned已解决该问题.我使用以下命令检查了此设置是否仍然存在:
Get-ExecutionPolicy -List
Run Code Online (Sandbox Code Playgroud)
我还确认这个$ profile.CurrentUserAllHosts文件存在,但我的互联网搜索另一个"组策略设置"显示没有任何兴趣.我的PowerShell版本信息是:
$PSVersionTable
Name Value
---- -----
PSVersion 3.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.18408
BuildVersion 6.2.8370.0
PSCompatibleVersions {1.0, 2.0, 3.0}
PSRemotingProtocolVersion 2.2
Run Code Online (Sandbox Code Playgroud)
如果我删除或移动问题配置文件脚本,那么我的所有PowerShell主机都会启动而不会出现错误,包括使用它自己的当前用户当前主机脚本的PowerShell ISE C:\ Users\MyUserName\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
事实证明,我的All Hosts配置文件脚本的问题是它完全是空的!将任何内容添加到文件中,甚至是单个空格字符或注释,都允许所有各种PowerShell主机执行此配置文件脚本.我必须在某个时候清除此脚本的内容,而不是删除它.
这不是一个直观的错误消息,这就是我发布此问答风格条目以供将来参考的原因.
有趣的是,我可以在它们启动后在所有主机中执行空/空脚本,这个问题似乎特定于配置文件脚本.
小智 5
删除两个文件
C:\Users\MyUserName\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
C:\Users\MyUserName\Documents\WindowsPowerShell\profile.ps1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11567 次 |
| 最近记录: |