如何从用C#编写的二进制Powershell模块中的Powershell主机获取全局变量的值,例如$ConfirmPreference
?
答案 0 :(得分:2)
可以使用PSCmdlet.GetVariableValue(string)
方法:
using System.Management.Automation;
namespace MyModule
{
[Cmdlet(VerbsDiagnostic.Test, "GetVariableValueMethod")]
public class TestGetVariableValueMethod : PSCmdlet
{
protected override void ProcessRecord()
{
ConfirmImpact confirmPref =
(ConfirmImpact)this.GetVariableValue("global:ConfirmPreference");
WriteObject(confirmPref);
}
}
}
在Powershell中进行测试:
PS > Test-GetVariableValueMethod
High
PS > $ConfirmPreference = 'Low'
PS > Test-GetVariableValueMethod
Low