微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从C#获取ExecutionPolicy?

我使用以下代码获取执行策略并成功检索它.

代码块1:

using (var powerShellInstance = PowerShell.Create())
{
     powerShellInstance.AddCommand("Get-ExecutionPolicy");
     Collection<PSObject> obj = powerShellInstance.Invoke();
}

问题是当我从PowerShell更改ExecutionPolicy时,它没有反映在C#中.

但是,如果我从C#更改ExecutionPolicy,那么它就会被反映出来.我使用以下代码更改ExecutionPolicy.

代码块2:

using (var powerShellInstance = PowerShell.Create())
{
     powerShellInstance.AddCommand("Set-ExecutionPolicy").AddArgument("ByPass");
     powerShellInstance.Invoke();
}

例如,请考虑以下方案:

使用代码块1在C#中将ExecutionPolicy检索为Unrestricted.
将ExecutionPolicy从PowerShell窗口更改为Bypass并使用代码块1在C#中进行测试,它将ExecutionPolicy检索为Unrestricted.
使用C#代码块2将ExecutionPolicy更改为Bypass并使用代码块1在C#中进行测试,它将ExecutionPolicy检索为Bypass.

解决方法

范围!

Set-ExecutionPolicy -Scope CurrentUser
Set-ExecutionPolicy -Scope LocalMachine
Set-ExecutionPolicy -Scope MachinePolicy
Set-ExecutionPolicy -Scope Process
Set-ExecutionPolicy -Scope UserPolicy

我相信认范围是Process(因此你的问题)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐