如何在Powershell 4.0 API中将ExecutionPolicy配置为“ RemoteSigned”

时间:2018-08-28 17:05:22

标签: powershell powershell-v4.0 executionpolicy

我需要在初始会话状态或执行脚本之前以某种方式将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 :(得分:1)

您是指启动PowerShell时的意思吗?如果可以的话,您可以这样做:

powershell -ExecutionPolicy RemoteSigned ... rest of parameters here

我知道我们有几种以这种方式开始的脚本。