2014-02-21 40 views
3

我試圖運行下面的腳本,但是當我做我得到PowerShell的格式是否

意外令牌「-PrimaryUserAddress」在表達式或語句

我怎樣才能解決這個問題?

$users = Get-ADUser "joerod" -Properties *|Select-Object SamAccountName, msRTCSIP-PrimaryUserAddress 

ForEach ($user in $users) { 
if($user.msRTCSIP-PrimaryUserAddress -ne 0){ 
Write-Host "Removing $($user.samaccountname) from OCS" 
} 
} 

回答

6

解析器正在擊中它 - 並將其解釋爲Powershell運算符。單引號的屬性,使之被解釋爲一個字符串:

if($user.'msRTCSIP-PrimaryUserAddress' -ne 0) 
+0

完美,謝謝! – JoeRod

1

或者到mjolinor的答案,你可以當你選擇它命名的屬性。

例如,這應該工作(未經測試):

$users = Get-ADUser "joerod" -Properties *|Select-Object SamAccountName, @{Name="PrimaryUserAddress";Expression={$_."msRTCSIP-PrimaryUserAddress"}}  

ForEach ($user in $users) { 
    if($user.PrimaryUserAddress -ne 0){ 
     Write-Host "Removing $($user.samaccountname) from OCS" 
    } 
} 

注:「名稱」指定新的名字爲變量,而「表達」指定要重命名的變量。