我有一些代碼,看起來像這樣:檢查是否存在AD對象;我該如何避免一個醜陋的錯誤信息?
if (Get-ADUser $DN -EA SilentlyContinue) {
# Exists
} else {
# Doesn't Exist
}
不幸的是,當GET-ADUser便有了DN無法找到用戶(這是很好的,這意味着對象名稱不採取),它拋出並吐出一個錯誤。我知道它會失敗,這很好,這就是爲什麼我有一個-ErrorAction
到SilentlyContinue
。不幸的是,它似乎什麼都不做......我仍然在腳本輸出上得到了一些東西。代碼起作用,由於控制檯吐出了錯誤,這只是醜陋而已。
- 有沒有更好的方法來測試一個特定的對象是否存在?
- 如果沒有,有沒有辦法讓ErrorAction正確地保持沉默?
注意:使用try ... catch解決方案,您可以更具體;即通過捕獲命名的例外。 'try {Get-ADUser $ DN -EA Stop} catch [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException] {「nice try」} catch {「not expected issue」} – JohnLBevan 2014-10-12 23:30:55
'get-aduser -erroraction'silentlycontinue''似乎在PowerShell-v4.0中正常工作。 – 2015-12-30 17:48:44