Powershell:执行策略
Posted
技术标签:
【中文标题】Powershell:执行策略【英文标题】:Powershell : Execution Policy 【发布时间】:2012-09-17 20:15:07 【问题描述】:过去几个月我一直在运行我的代码 -
Set-ExecutionPolicy Unrestricted
但是,发生了一些奇怪的事情,我总是收到这个错误 -
Windows PowerShell 成功更新了您的执行策略,但是 设置被在更具体范围内定义的策略覆盖。 由于覆盖,您的外壳将保留其当前有效 “无限制”的执行政策。键入“Get-ExecutionPolicy -List” 查看您的执行策略设置。如需更多信息,请 请参阅“Get-Help Set-ExecutionPolicy”。
我已经参考了这些链接,但没有运气 -
http://blogs.msdn.com/b/pasen/archive/2011/12/07/set-executionpolicy-windows-powershell-updated-your-execution-policy-successfully-but-the-setting-is-overridden-by-a-policy-defined-at-a-more-specific-scope.aspx
http://blog.whatsupduck.net/2010/09/issues-with-configuring-powershell.html
http://www.howtogeek.com/106273/how-to-allow-the-execution-of-powershell-scripts-on-windows-7/
我正在使用 .Net 4.0 的 32 位 Winforms 应用程序在 64 位 Windows 7 上使用 C# 加载 Powershell
我需要做什么才能在任何系统上都不会出现此错误? [一切正常]。这些值在任何系统上应该是什么,以便我能够从 C# 无缝调用 Powershell -
Get-ExecutionPolicy -List
MachinePolicy UserPolicy Process CurrentUser LocalMachine
【问题讨论】:
Get-ExecutionPolicy -List
的输出应该显示每个范围的执行策略。
显示 LocalMachine 不受限制。但是,在这两者之间,我得到了上面提到的错误。我不知道为什么。真是令人沮丧!
【参考方案1】:
您应该会看到来自Get-ExecutionPolicy -List
的类似输出:
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned
一旦您看到具有不需要的设置的范围,您可以像这样重置它:
Set-ExecutionPolicy Undefined -Scope <scope-name>
这是假设您有权这样做。
【讨论】:
但是从 C# 代码执行时出现错误,当时我没有任何控制来重置范围? 系统管理员能否永远在组策略级别做一些事情,这样我至少不必为这件事接触基于脚本的代码(Win7-32 和 64 位,Win2k8 R2) 哇 - 你是在自己的主机上运行它吗,也就是说,你是在自己的 C# 应用程序中托管 PowerShell 引擎吗? @AngshumanAgarwal 看看这个 SO 问题的答案 - ***.com/questions/4339093/… 谢谢基思。我没有做任何自定义托管。我只是在这些行上使用Powershell.Create
从 C# 调用 Powershell 运行时 - msdn.microsoft.com/en-us/library/windows/desktop/…。以上是关于Powershell:执行策略的主要内容,如果未能解决你的问题,请参考以下文章
powershell 将执行策略远程签名设置为信任powershell脚本