c# – 如何在Set-ADUser中使用“-replace”?

我想通过我的C#使用Power
Shell来修改Active Directory属性.这是我可以用来替换Active Directory属性的PowerShell命令:

Set-ADUser -Identity "kchnam" -Replace @{extensionAttribute2="Neuer Wert"}

如何将@ {extensionAttribute2 =“Neuer Wert”}添加到我的C#命令中?

我的解决方案不起作用:

Command setUser = new Command("Set-ADUser");
setUser.Parameters.Add("Identity", aduser);
string testadd = "@{extensionAttribute2=" + quote + "Neuer Wert" + quote + "}";
setUser.Parameters.Add("Replace", testadd);

最佳答案 在PowerShell中:

@{extensionAttribute2="Neuer Wert"}

表示Hashtable文字,而不仅仅是字符串.所以,在C#中你还必须创建一个Hashtable对象:

new Hashtable{{"extensionAttribute2","Neuer Wert"}}

虽然,这并不完全等同于PowerShell,因为PowerShell使用不区分大小写的键比较器创建Hashtable.但是,很有可能,您可以使用任何实现IDictionary的集合,而不仅仅是Hashtable.

点赞