2017-08-02 43 views
0
名基地

我的代碼:PowerShell的 - 找到描述

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -Notlike "Services User"} | select Name 

我想上面的代碼,它仍然顯示這兩個賬戶。所以我有2個帳戶的用戶。一個帳戶是常規帳戶,另一個帳戶是服務帳戶。我只想顯示常規帳戶。

回答

1

您的代碼看起來很好,適用於我(使用更改的帳戶變量)。這意味着你應該檢查賬戶和「服務用戶」。逐步分解管道以驗證工作是否正常。

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description 

這應該輸出這兩個帳戶,連同他們的描述作爲標題。根據你的錯誤,這部分工作正常,所以你可能甚至不需要檢查它。

但是,它可能仍然是好做檢查的「說明」屬性看起來不錯:

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | select Description 

如果這些比賽你所寫的內容,那麼接下來的元素添加到管道:

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -Notlike "Services User"} 

對於這部分,看看它輸出的內容更重要。從你所說的話,這將輸出這兩個帳戶,但這不是你想要的。最可能的情況是「服務用戶」不完全是您的其他帳戶的描述。將它與此代碼片段的輸出進行比較。

我希望這可以幫助,它只是經典的調試。你也可以使用類似DistinguishedName屬性的東西來比較這兩個賬戶,它可能比描述(這不是強制性屬性)更可靠。

0

也許你應該使用另一個開關。而不是使用 - 不是像,你應該使用-ne或當量:

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -ne "Services User"} | select Name 

或者:

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -eq "regular account"} | select Name 

當然,當你使用上面的開關,你必須檢查的描述字符串。它必須與條件中的字符串相等。

0

興趣......它的工作原理,當我加"*service*"

感謝總結問題的傢伙。

相關問題