我正在尝试查询AD以获取用户列表和特定变量,如下所示:
get-aduser -filter * -Properties * | select Samaccountname,vasco-LinkUserToDPToken | Export-Csv U:\test.csv -NoTypeInformation
然而,这将返回samaccountname和Microsoft.ActiveDirectory.Management.ADPropertyValueCollection。
在网上看到我已经确定这个属性是一个集合,我需要一些东西来扩展它并允许它导出为CSV:
get-aduser -filter * -Properties * | select @{name="vasco";expression={$_.vasco-LinkUserToDPToken -join}},samaccountname | Export-Csv U:\test.csv -NoTypeInformation
但是我一直收到以下错误:
Unexpected token '-LinkUserToDPToken' in expression or statement.
我猜测powershell正在阅读“ - ”作为某种形式的运算符并逐渐消失。不幸的是,我无法找到解决方法。我明白`是逃脱角色,但我对它的直率使用并没有产生任何可用的结果。我希望有人能够帮助我朝着正确的方向前进。很可能是我疯狂的博客阅读导致我误解了哈希表的使用语法...
答案 0 :(得分:1)
我之前在我们的环境中遇到过这个问题,诀窍是在$_.
符号变量之后使用双引号。 $_."vasco-LinkDPToUserToken"
get-aduser -filter * -Properties * | select @{name="vasco";expression={$_."vasco-LinkUserToDPToken" -join}},samaccountname | Export-Csv U:\test.csv -NoTypeInformation
答案 1 :(得分:0)
您应该可以通过以下名称访问该媒体资源:
$UserObject.Properties.Item("vasco-LinkUserToDPToken")
所以你的Hash表表达式看起来像这样:
@{name="vasco";expression={$_.Properties.Item("vasco-LinkUserToDPToken") -join}}