Parameters 在PSCmdlet中,是否可以基于另一个变量使变量成为非强制变量?

Parameters 在PSCmdlet中,是否可以基于另一个变量使变量成为非强制变量?,parameters,pscmdlet,Parameters,Pscmdlet,在PSCmdlet中,我可以这样声明参数 [Parameter(Position = 0, Mandatory = true, HelpMessage="Host or IP for Appliance.")] public string host; [Parameter(Position = 1, Mandatory = true, HelpMessage = "User name.")] public string user; [Parameter(P

在PSCmdlet中,我可以这样声明参数

    [Parameter(Position = 0, Mandatory = true, HelpMessage="Host or IP for Appliance.")]
    public string host;
    [Parameter(Position = 1, Mandatory = true, HelpMessage = "User name.")]
    public string user;
    [Parameter(Position = 2, Mandatory = true, HelpMessage = "User password.")]
    public SecureString Password;
我的问题是,我想添加另一个参数,如PasswordEnc,其中用户可以提供加密密码,如md5哈希

如果用户提供PasswordEnc,则不需要密码。在PSCmdlet中有什么方法可以做到这一点吗

我想我可以编写一个powershell函数,找出提供了哪个密码变量,然后调用Cmdlet

只是想知道有没有别的办法


谢谢

你能把密码转换一下吗?然后,在解析密码arg时,您将知道密码是否基于该开关存在(或不存在)进行编码,这是一个很好的建议。我试试看。谢谢