c# - 如何在 Set-ADUser 中使用 "-replace"?

标签 c# powershell replace

我想通过我的 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/

相关文章:

c# - .OrderBy()/.OrderByDescending() 与 .FirstOrDefault()/.First()

c# - 如何为 Web API 2 异步操作中的异常获取正确的堆栈跟踪?

string - 多重 split

mysql - 在 MySQL 中替换字符串但仅指定部分

c# - GetEnumerator 的重载

c# - Azure.DocumentDb 在 HTTP 请求中找到的 MAC 签名与计算的签名不同

Powershell foreach 暂停后执行

Powershell 模块存储用户设置的位置

javascript - 在替换之前获取子字符串的位置

google-chrome - 用 chrome 扩展替换页面上的图像