我想通过我的 C# 使用 PowerShell 来修改 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
文字,而不仅仅是 string
。因此,在 C# 中,您还必须创建一个 Hashtable
对象:new Hashtable{{"extensionAttribute2","Neuer Wert"}}
虽然,这并不完全等同于 PowerShell,因为 PowerShell 创建
Hashtable
不区分大小写的键比较器。但是,很可能您可以使用任何实现 IDictionary
的集合,而不仅仅是 Hashtable
。关于c# - 如何在 Set-ADUser 中使用 "-replace"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31921187/