в зависимости от метода, который я использовал для настройки политики выполнения для Powershell, я получаю два разных значения.Powershell Get-ExecutionPolicy возвращает разные значения
Если я запускаю Get-ExecutionPolicy
в подсказке Powershell, я получаю «Unrestricted».
Если я использую следующий код, я получаю «Restricted».
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
и там говорит Неограниченные.
Любая идея, почему я получаю другой результат? Возможно ли мой код?
Спасибо. В конечном счете, этот код будет работать в службе Windows. На данный момент я тестирую его в приложении Windows. Какие права мне нужно, чтобы переопределить настройку? – joerage 2010-12-02 21:16:50