В зависимости от метода, который я использовал для получения параметра политики выполнения для Powershell, я получаю два разных значения.
Если я запускаю Get-ExecutionPolicy
в приглашении Powershell, я получаю «Неограниченно».
Если я использую следующий код, я получаю «Ограничено».
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;
}
}
Опять я получаю «Restricted» со следующим кодом:
using (var invoker = new RunspaceInvoke())
{
foreach (var result in invoker.Invoke("Get-ExecutionPolicy"))
{
var restriction = ((ExecutionPolicy)result.BaseObject);
break;
}
}
Я также проверил в реестре здесь: HKEY_Local_Machine\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.Powershell\ExecutionPolicy
и там написано «Неограниченно».
Есть идеи, почему я получаю другой результат? Возможно, мой код неверен?