powershell Exit Code wird nicht übergeben

Post Reply
SLes
Posts: 34
Joined: 05. Jun 2013, 10:30
Contact:

powershell Exit Code wird nicht übergeben

Post by SLes » 13. Aug 2021, 09:55

Hallo zusammen,

ich stehe bei einer kleinen Abfrage auf dem Schlauch und bräuchte einen kurzen Gedankenanstoß:
Ziel ist ein Check der aktuellen BIOS-Version.

Code: Select all

;Erfolgscheck auf BIOS-Version
CallHidden powershell -ExecutionPolicy ByPass -command "if((Get-CimInstance win32_bios).SMBIOSBIOSVersion -match "%TargetVersion%") {Return 0} else {Return 1}"
If "%ErrorLevel%" == "1" Then "Set:InstallErrorAfterReboot" else "Set:InstallSuccess" EndIf
Der Code funktioniert in der Powershell. Ich hab auch schon andere Aufrufe, wo der Exitcode sauber übergeben wird.
Ich brauche ja nur ein 0 oder 1 :lol:

In diesem Fall funktioniert das allerdings nicht (getestet, indem ich eine "call Powershell" eingefügt habe, $Lastexitcode ist immer leer). Ich kann es aber auch nachvollziehen, da die richtige Sektion nie angesprochen wird, obwohl die Bedingungen gegen sind.
(anstatt Return habe ich auch schon Exit 0 bzw. Exit 1 ausprobiert)


Ich tippe auf einen ganz dummen Fehler, den ich nur gerade nicht finde. Wie übergebe ich hier den Exit-Code korrekt?
Hat jemand eine Idee?

SLes
Posts: 34
Joined: 05. Jun 2013, 10:30
Contact:

Re: powershell Exit Code wird nicht übergeben

Post by SLes » 13. Aug 2021, 11:53

Lösung:

Ich habe die Falschen Anführungszeichen verwendet. Bei der Übergabe an die Powershell.exe muss man da vorsichtig sein.
So geht es:

Code: Select all

CallHidden powershell -ExecutionPolicy ByPass -command "if((Get-CimInstance win32_bios).SMBIOSBIOSVersion -match '%BIOSVERSION%') {Exit 0} else {Exit 1}"
If "%ErrorLevel%" == "1" Then "Set:InstallErrorAfterReboot" else "Set:InstallSuccess" EndIf

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: No registered users and 3 guests