DSGET 在输出的专有名称 (DN) 中转义井号 (#),但希望输入未转义的井号

DSGET 在输出的专有名称 (DN) 中转义井号 (#),但希望输入未转义的井号

假设我想在 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 甚至向管道添加可执行文件的解决方案?

相关内容