cpython
Goto Top

Powershell Catch NativeCommandError

Guten Morgen zusammen,

ich habe ein kleines Script geschrieben welches automatisch ein PFX Zertifikatsdatei in eine Java JKS Datei mit dem JAVA Tool keytool.exe umwandelt und dieses in die Datenbank der Anwendung reinschreibt. Klappt alles wunderbar außer, dass aus irgendeinem Grund bei Aufruf des Umwandlungsprozesses mit:

keytool.exe -importkeystore -deststorepass $password -destkeypass $password -destkeystore $destJKS -srckeystore $sourcePFX -srcstoretype PKCS12 -srcstorepass $password

Folgender Fehler kommt:

keytool.exe : Keystore c:\scripts\letsencrypt\cert.p12 wird in c:\scripts\letsencrypt\ecodms.jks importiert...
In Zeile:8 Zeichen:1
+ e:\ecoDMS\ecoDMS` Server\Java\bin\keytool.exe -importkeystore -destst ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Keystore c:\scr...s importiert...:String) , RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
Eintrag für Alias [..] erfolgreich importiert.
Importbefehl abgeschlossen: 1 Einträge erfolgreich importiert, 0 Einträge nicht erfolgreich oder abgebrochen

Diese Meldung kommt auch wenn ich den Codesnippet mit keytool.exe einfach im PowerShell ISE Fenster ausführe. Er sagt ja einfach nur das Ergebnis, sprich 1 Einträge erfolgreich importiert. Aber da das keytool.exe das als Fehler auswirft bekomme ich eine Fehlerhafte Ausführung in meinem Automatisierungssystem.

Kann ich den Fehler irgendwie abfangen sodass er sich nur meldet wenn wirklich ein Fehler passiert?

Vielen Dank schon mal!
Gruß
CPython

Content-Key: 2340538407

Url: https://administrator.de/contentid/2340538407

Printed on: April 27, 2024 at 22:04 o'clock

Mitglied: 1915348599
Solution 1915348599 Mar 30, 2022 updated at 10:26:49 (UTC)
Goto Top
Try Catch Konstrukt drum herum packen und im Catch die genannte Exception ins leere laufen lassen aber andere Fehler trotzdem behandeln ...

Alles, was Sie schon immer über Ausnahmen wissen wollten

Alternativ über Start-Process und Exit-Code Auswertung
$ergebnis = start "C:\Path\to\keytool.exe" -ArgumentList "-importkeystore -deststorepass $password -destkeypass $password -destkeystore $destJKS -srckeystore $sourcePFX -srcstoretype PKCS12 -srcstorepass $password" -Wait -NoNewWindow -PassThru  
if ($ergebnis.ExitCode -ne 0){
    "Error: $($ergebnis.ExitCode)"  
    return
}