【问题标题】:Invoke get-aduser from c#从 c# 调用 get-aduser
【发布时间】:2013-06-13 15:27:09
【问题描述】:

这是我之前的问题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() 处遇到异常:

找不到与参数名称匹配的参数 '过滤器脚本'。

对这个有什么建议吗?

提前致谢

【问题讨论】:

    标签: c# powershell


    【解决方案1】:

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

    【讨论】:

    • 太好了,谢谢,这让我克服了 FilterScript 问题,但现在有一个新问题:找不到接受参数“*”的位置参数。似乎“属性”参数也没有被接受:(。对不起,我正在学习如何通过 C# 使用 PS
    • 哎呀,愚蠢的错误,现在修复它.. 必须使用 .AddCommand("Properties","*") 而不是使用 AddArgument()
    猜你喜欢
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多