二进制 Powershell 模块 - 从 Powershell 主机获取全局变量的值

Binary Powershell Modules - get the value of a global variable from the Powershell host

如何从用 C# 编写的二进制 Powershell 模块中的 Powershell 主机获取全局变量的值,例如 $ConfirmPreference

可以使用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