假设我想在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 =#Kentucky Office,OU =#分发列表,DC = myenterprise,DC =本地” )将失败,并显示以下错误:
dsget failed:Value for 'Target object for this command' has incorrect format.
解决这个问题的方法就是避开哈希(即“CN =#Kentucky Office,OU =#Distribution Lists,DC = myenterprise,DC = local” )。 我可以通过oneliner在PowerShell中做到这一点:
dsquery user -name "John Smith" | dsget user -memberof -expand | ForEach-Object { $_.Replace('\#', '#') } | dsget group -samid
有没有一个解决scheme,不涉及powershell.exe,甚至添加一个可执行文件,除了dsquery或dsgetpipe道?