You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#调用PowerShell遇ParameterBindingException错误求助

C#调用PowerShell执行分发组成员查询时参数绑定错误

报错信息

System.Management.Automation.ParameterBindingException: 'A positional parameter cannot be found that accepts argument 'Select PrimarySMTPAddress'.'

可正常运行的PowerShell命令

Get-DistributionGroupMember -Identity emailaddress -ResultSize Unlimited | Select PrimarySMTPAddress

问题C#代码

powerShell.AddCommand("get-distributiongroupmember");
powerShell.AddParameter("Identity", distributionGroup.Name);
powerShell.AddArgument("Select PrimarySMTPAddress");

修复方案

错误原因是AddArgument("Select PrimarySMTPAddress")把整段字符串当成了Get-DistributionGroupMember的位置参数,但该命令并不接受这个参数。要实现PowerShell中的管道操作(|),在C#的PowerShell SDK里需要用AddCommand添加后续命令,而非AddArgument:

// 添加主命令并设置参数
powerShell.AddCommand("get-distributiongroupmember");
powerShell.AddParameter("Identity", distributionGroup.Name);
powerShell.AddParameter("ResultSize", "Unlimited"); // 补上原PowerShell命令中的ResultSize参数

// 添加管道后的Select-Object命令
powerShell.AddCommand("select-object");
powerShell.AddArgument("PrimarySMTPAddress");

说明:

  • AddCommand用于添加管道分隔的每一个命令,对应PowerShell中的管道逻辑
  • 原PowerShell命令里的-ResultSize Unlimited必须补充到C#代码中,否则查询结果数量会受默认限制
  • Select PrimarySMTPAddress本质是调用Select-Object命令并传入PrimarySMTPAddress作为参数,因此需要单独添加该命令并传递参数

内容的提问来源于stack exchange,提问作者Jefferson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:22:06