2014-02-05 153 views
0

我想查詢AD用戶列表和一個特定的變量,像這樣的屬性:逃生ActiveDirectory中具有特殊字符

get-aduser -filter * -Properties * | select Samaccountname,vasco-LinkUserToDPToken | Export-Csv U:\test.csv -NoTypeInformation 

然而,這將返回SAM帳戶和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正在讀取「 - 」作爲某種形式的操作符和dooming。不幸的是我無法找到一個方法。我明白'是逃避角色,但是我對它的直接使用並沒有產生有用的結果。我希望有人能夠幫助我朝正確的方向發展。這很可能是我瘋狂的博客文章的閱讀,導致我誤解了哈希表的使用語法,以及...

回答

1

我已經在我們的環境中遇到過這樣的訣竅就在於這樣的$_.標誌變量後使用雙引號。 $_."vasco-LinkDPToUserToken"

get-aduser -filter * -Properties * | select @{name="vasco";expression={$_."vasco-LinkUserToDPToken" -join}},samaccountname | Export-Csv U:\test.csv -NoTypeInformation 
+0

完美的工作就像一個魅力。必須記住這一點以備將來查詢! –

0

您應該能夠通過名字像這樣來訪問屬性:

$UserObject.Properties.Item("vasco-LinkUserToDPToken") 

所以您的哈希表表達式來尋找這樣的:

@{name="vasco";expression={$_.Properties.Item("vasco-LinkUserToDPToken") -join}}