假设我想在 AD 中执行非常简单的查询
dsquery user -name "John Smith" | dsget user -memberof -expand
这将输出此用户所属的 AD 组的 DN。我可以通过以下方式打印友好组名:
dsquery user -name "John Smith" | dsget user -memberof -expand | dsget group -samid
但是如果一个群组中有哈希标签(例如“CN=#肯塔基州办事处,OU=#分发列表,DC=myenterprise,DC=local”) 将失败并出现以下错误:
dsget failed:Value for 'Target object for this command' has incorrect format.
解决这个问题的方法是取消哈希的转义(即“CN=#肯塔基州办事处,OU=#分发列表,DC=myenterprise,DC=local”)。我可以通过一行代码在 powershell 中执行此操作:
dsquery user -name "John Smith" | dsget user -memberof -expand | ForEach-Object { $_.Replace('\#', '#') } | dsget group -samid
除了 dsquery 或 dsget 之外,有没有不涉及 powershell.exe 甚至向管道添加可执行文件的解决方案?