Dieser Teil meines Skript ist:Powershell Verzeichnisdienst-Objektfehler nicht catched weder gefangen
Trap {Write-Output 'Authentication Error trapped'}
Try {New-Object System.DirectoryServices.DirectoryEntry $strDistinguishedName,$strUsername,$strPlainPassword -ErrorAction stop}
Catch{Write-Output 'Authentication Error catched'}
Write-Output 'Script has not trapped nor catched the error but continued'
Der Fehler nur wird das Skript beendet und ich fand keinen Weg, um den Fehler zu fangen oder zu stoppen.
Das Skript schreibt nicht einmal die letzte Zeile, was bedeutet, dass es das Skript vollständig verlassen hat. Hier
ist die gesamte Ausgabe:
PS C:\Temp> & .\test.ps1
format-default : The following exception occurred while retrieving member "distinguishedName": "Logon failure: unknown user name or bad password.
"+ CategoryInfo : NotSpecified: (:) [format-default], ExtendedTypeSystemException
+ FullyQualifiedErrorId : CatchFromBaseGetMember,Microsoft.PowerShell.Commands.FormatDefaultCommand
PS C:\Temp>
Der Fehlertyp ist:
PS C:\Temp> $Error[0].GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True CmdletInvocationException System.Management.Automation.RuntimeException
PS C:\Temp>
Ich habe versucht:
- Fang oder Fallen [System.Exception]
- Fang oder Trap [System.Management]
- den -ErrorAction Parameter
- zu verwenden, um den $ ErrorActionPreference Variable
Weiß jemand, wie zu stoppen, diesen Fehler zu entfernen?
Das seltsame ist, die Ausnahme stammt tatsächlich aus 'format default', die die Ausgabe Formatierer, um Dinge in der Konsole anzuzeigen, wie zum Beispiel "Out-Default". Der 'New-Object'-Aufruf ist nicht fehlgeschlagen, und Sie können dies sehen, indem Sie' $ x = try {new-object ...} catch {} 'schreiben und es gibt keinen Fehler. Aber wenn Sie dann versuchen, $ x zu sehen, was es ist, gibt es einen Fehler. Danach versuchen Sie '" $ x "' und es behauptet, ein 'System.DirectoryServices.DirectoryEntry' zu sein. Aber Sie können nicht '$ x.GetType()' weil es 'ParentContainsErrorRecordException' auslöst. Was ist da los? – TessellatingHeckler
Gleiches hier diskutiert: http://stackoverflow.com/q/26262384/478656 – TessellatingHeckler
Sie sind richtig für den Link. Ich suchte, fand aber kein Thema, das bereits über dieses merkwürdige Verhalten sprach. Ihre Anfrage war effektiver als meine ;-) Sie können Ihren Link als Antwort veröffentlichen. – Luke