从c#调用get-aduser

时间:2013-06-13 15:27:09

标签: c# powershell

这是我之前的问题Invoking powershell cmdlets 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'。

对此有任何建议吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

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