Ho un po 'di codice che assomiglia a questo:Controllo dell'esistenza di un oggetto AD; come posso evitare un brutto messaggio di errore?
if (Get-ADUser $DN -EA SilentlyContinue) {
# Exists
} else {
# Doesn't Exist
}
Purtroppo, quando Get-ADUser il DN non riesce a trovare un utente (che va bene, significa che il nome dell'oggetto non è preso), si getta su e sputa un errore. So che fallirà, va bene, ed è per questo che ho un -ErrorAction
a SilentlyContinue
. Sfortunatamente sembra non fare nulla ... Ricevo ancora un colpo sull'output dello script. Il codice funziona, è solo brutto a causa della console che sputa l'errore.
- C'è un modo migliore per verificare se esiste un particolare oggetto?
- In caso contrario, c'è un modo per fare in modo che ErrorAction sia correttamente silenzioso?
NB: con la soluzione try ... catch si può essere più specifici; Ad esempio, rilevando eccezioni denominate. 'prova {Get-ADUser $ DN -EA Stop} cattura [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException] {" nice try "} catch {" non il problema atteso "}' – JohnLBevan
'get-aduser -erroraction 'silentlycontinue'' sembra funzionare correttamente in powershell-v4.0. –