加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何从C#获取ExecutionPolicy?

发布时间:2020-12-15 22:44:59 所属栏目:百科 来源:网络整理
导读:我使用以下代码来获取执行策略并成功检索它. 代码块1: using (var powerShellInstance = PowerShell.Create()){ powerShellInstance.AddCommand("Get-ExecutionPolicy"); CollectionPSObject obj = powerShellInstance.Invoke();} 问题是当我从PowerShell更
我使用以下代码来获取执行策略并成功检索它.

代码块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(因此你的问题)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读