2

这是我之前的问题Invoking powershell cmdlet from C#的延续

我想从 C# 中调用活动目录 cmdlet get-aduser,它采用的第一个参数是一个过滤器。我尝试执行的完整 cmdlet 是:

get-aduser -filter {name -eq "joe bloggs"} -Properties * | select employeeID

根据我之前的问题(参见上面的链接),我创建了一个脚本块来做到这一点:

ps2.Commands.AddCommand("get-aduser");
string script = string.Format("name -eq \"{0}\"", fullname); //fullname constuction now shown
ScriptBlock filter2 = ScriptBlock.Create(script);
ps2.AddParameter("FilterScript", filter2);
ps2.AddParameter("Properties").AddArgument("*");
ps2.AddCommand("select").AddArgument("employeeID");
ps2.Invoke();

但是,当我执行此操作时,在 ps2.Invoke() 处出现异常:

找不到与参数名称“FilterScript”匹配的参数。

对这个有什么建议吗?

提前致谢

4

1 回答 1

1

Get-ADUser 没有“FilterScript”参数(Where-Object 有),请使用“Filter”:)

于 2013-06-13T15:28:23.117 回答