由于缺少一个或多个必需参数而无法处理命令:Identity

Cannot process command because of one or more missing mandatory parameters: Identity

当我尝试使用 powershell 从我的 c# 应用程序执行 powershell 时,我遇到了一个可能具有误导性的错误。

如标题所示,错误表明我缺少 Identity 参数,但它并没有丢失。 我尝试调试,并确认参数已添加到命令 object,然后再调用。

var x = ps.AddScript("Remove-CsOnlineVoiceRoutingPolicy")
                    .AddParameter("Identity", "DK")
                    .AddParameter("-Force");
                x.Invoke();

我是 运行 powershell 7.2,使用 System.Management.Automation.Powershell 版本 7.2.1.0

关于为什么会发生这种情况的任何想法?

我已经尝试了带破折号和不带破折号的两个参数,没有任何区别。

除了 addParameter 之外,还使用了 AddScript。 当使用添加脚本时,参数应该在脚本中内联,如果你想使用 addPArameter,它应该在 AddCommand 之后。

AddParameter() 中参数名称中的破折号似乎被完全忽略了。

一个工作示例如下所示。

var x = ps.AddCommand"Remove-CsOnlineVoiceRoutingPolicy")
                .AddParameter("Identity", "DK")
                .AddParameter("Force");
            x.Invoke();