c# - 为什么从 C# 中看不到从 PowerShell 设置的新执行策略?

标签 c# powershell executionpolicy

我已经使用下面的代码成功获取了执行策略:

using (var powerShellInstance = PowerShell.Create())
{
    powerShellInstance.AddCommand("Get-ExecutionPolicy");
    Collection<PSObject> obj = powerShellInstance.Invoke();
}

我使用了以下代码来设置执行策略:

using (var powerShellInstance = PowerShell.Create())
{
    powerShellInstance.AddCommand("Set-ExecutionPolicy").AddArgument("ByPass");
    powerShellInstance.Invoke();
}

问题是当我从 PowerShell 设置执行策略时,更改在 C# 中不可见。如果我从 C# 设置执行策略,那么更改是可见的。

考虑以下场景:

  • C# 获取执行策略 Unrestricted
  • PowerShell 将执行策略设置为绕过
  • C# 获取执行策略 Unrestricted
  • C# 将执行策略设置为Bypass
  • C# 获取执行策略绕过

最佳答案

范围!

Set-ExecutionPolicy -Scope CurrentUser
Set-ExecutionPolicy -Scope LocalMachine
Set-ExecutionPolicy -Scope MachinePolicy
Set-ExecutionPolicy -Scope Process
Set-ExecutionPolicy -Scope UserPolicy

相信默认范围是Process(因此是您的问题)

关于c# - 为什么从 C# 中看不到从 PowerShell 设置的新执行策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44321591/

相关文章:

c# - 'ItemDataBound' 没有重载匹配委托(delegate) 'System.EventHandler'

c# - 当绑定(bind)数据更改时,用户控件上的依赖属性不更新该属性

forms - 在 Powershell 中检查是什么关闭了 Windows 窗体

Powershell - 关于 foreach 的澄清

azure - 使用 powershell 从 azure 数据工厂中的管道中删除触发器引用

powershell - 为什么我本地创建的脚本不允许在 RemoteSigned 执行策略下运行?

c# - 解除绑定(bind)wpf listview的最佳方法

powershell - Roslyn安装-Powershell脚本

powershell - 防止绕过PowerShell执行策略

c# - 绑定(bind)到动态加载的用户控件中的事件