ich ein Stück Code haben, der wie folgt aussieht:Überprüfung auf die Existenz eines AD-Objekts; Wie vermeide ich eine hässliche Fehlermeldung?
if (Get-ADUser $DN -EA SilentlyContinue) {
# Exists
} else {
# Doesn't Exist
}
Leider, als Get-ADUser die DN eines Benutzers zu finden, fehlschlägt (was in Ordnung ist, es bedeutet, dass der Objektnamen nicht genommen wird), es wirft und spuckt einen Fehler aus. Ich weiß, es wird scheitern, das ist in Ordnung, weshalb ich eine -ErrorAction
zu SilentlyContinue
habe. Leider scheint es nichts zu tun ... Ich bekomme immer noch Probleme mit der Skriptausgabe. Der Code funktioniert, es ist nur hässlich, weil die Konsole den Fehler ausspuckt.
- Gibt es einen besseren Weg für mich zu testen, ob ein bestimmtes Objekt existiert?
- Wenn nicht, gibt es eine Möglichkeit, die ErrorAction ordnungsgemäß zu deaktivieren?
:
Der Ausgang davon geht in NB: Mit der Try ... Catch Lösung können Sie spezifischer sein; d.h. durch Erfassen von benannten Ausnahmen. 'try {Get-ADUser $ DN -EA Stop} catch [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException] {" nice try "} catch {" nicht das erwartete Problem "}' – JohnLBevan
'get-aduser -erroaction 'silentlycontinue'' scheint um in powershell-v4.0 richtig zu funktionieren. –