Как настроить ExecutionPolicy как «RemoteSigned» в API-интерфейсе Powershell 4.0 - PullRequest
0 голосов
/ 28 августа 2018

Мне нужно настроить ExecutionPolicy как «RemoteSigned» в начальном состоянии сеанса или каким-либо образом перед выполнением скрипта. Я не хочу выполнять скрипт для установки политики. Это изменило бы политику на клиентском компьютере, который я не хочу.

В справочных сборках Powershell 5.0 это легко сделать,

var iss = InitialSessionState.CreateDefault();
iss.ExecutionPolicy = ExecutionPolicy.RemoteSigned

но как мне добиться того же, оставаясь с Powershell 4.0 в качестве сборок, на которые есть ссылки.

C # код для выполнения скрипта

var iss = InitialSessionState.CreateDefault();
iss.ExecutionPolicy = ExecutionPolicy.RemoteSigned; --> this is OK for Powershell ReferenceAssemblies 5.0 but not 4.0

iss.ImportPSModule(new[] { typeof(Parameter).Assembly.Location });
using (var powerShell = PowerShell.Create(iss))
{
     var psScript = _inlineScript ?? File.ReadAllText(_path);
     powerShell.AddScript(psScript);
}

1 Ответ

0 голосов
/ 28 августа 2018

Вы имеете в виду, когда запускаете PowerShell? если это так, вы можете сделать это:

powershell -ExecutionPolicy RemoteSigned ... rest of parameters here

Я знаю, что у нас есть несколько сценариев, которые начинаются таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...