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脚本

Powershell:执行策略

组策略配置Powershell的Excution Policy

PowerShell~执行策略的介绍

PowerShell初级篇●执行策略

powershell 为流程设置执行策略