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

时间:2015-08-10 13:43:22

标签: c# powershell replace

我想通过我的C#使用PowerShell来修改Active Directory属性。这是我的PowerShell命令,可用于替换Active Directory属性:

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);

1 个答案:

答案 0 :(得分:2)

在PowerShell中:

@{extensionAttribute2="Neuer Wert"}

表示Hashtable字面值,而不仅仅是string。因此,在C#中,您还必须创建一个Hashtable对象:

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

虽然这与PowerShell不完全等效,但PowerShell使用不区分大小写的密钥比较器创建Hashtable。但是,很可能您可以使用任何实现IDictionary的集合,而不仅仅是Hashtable