相关疑难解决方法(0)

Powershell Get-ExecutionPolicy返回不同的值

根据我用于获取Powershell执行策略设置的方法,我得到两个不同的值.

如果我Get-ExecutionPolicy在Powershell提示符下运行,我会得到'Unrestricted'.

如果我使用以下代码,我会得到"限制".

using (var runspace = RunspaceFactory.CreateRunspace())
{
    runspace.Open();

    var pipeline = runspace.CreatePipeline();
    pipeline.Commands.AddScript("Get-ExecutionPolicy");

    foreach (var result in pipeline.Invoke())
    {
        var restriction = ((ExecutionPolicy)result.BaseObject);
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

再次,我使用以下代码获得"限制":

using (var invoker = new RunspaceInvoke())
{
    foreach (var result in invoker.Invoke("Get-ExecutionPolicy"))
    {
        var restriction = ((ExecutionPolicy)result.BaseObject);
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

我还在这里检查了注册表:HKEY_Local_Machine\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.Powershell\ExecutionPolicy 那里它说无限制.

知道为什么我会得到不同的结果吗?我的代码可能不正确吗?

c# powershell

3
推荐指数
1
解决办法
1920
查看次数

标签 统计

c# ×1

powershell ×1