根据我用于获取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
那里它说无限制.
知道为什么我会得到不同的结果吗?我的代码可能不正确吗?
您是否正在实施自定义主机?如果是,则默认执行策略将受到限制,并且需要为该主机设置(在ShellIds下).
无论哪种方式,您都应该能够在代码中首先执行此命令来覆盖设置:
Set-ExecutionPolicy RemoteSigned -Scope process
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1920 次 |
| 最近记录: |