[GELÖST] DELL BIOS-Setup-Paket
Veröffentlicht: 17. Dez. 2019 - 15:35 Uhr
Hallo zusammen,
Ich versuche, mit dem cctk-Tool von DELL ein Konfigurationspaket für das UEFI-BIOS zu erstellen.
Manche Computer sind durch ein BIOS-Passwort geschützt, andere nicht. Da wir nicht möchten, dass BIOS-Passwörter im Klartext übertragen werden, habe ich mit CCT zwei ausführbare Dateien erstellt: eine zum Entfernen des Passworts und eine zum Zurücksetzen.
Ich möchte in meinem WAPT-Paket folgende Schritte befolgen:
Mein Problem ist, dass ich diesen Rückgabecode nicht erfassen kann.
Wenn ich meine Bestellung aufgebe:
Ich habe eine CalledProcessErrorOutput-Methode (normal), die diesen Rückgabecode anzeigt
Ich möchte diesen Exit-Code (in meinem Fall 58 und 106) abrufen können, um meine erste Bedingung überprüfen zu können.
Ich habe versucht, den Rückgabewert des Befehls in einem try/except-Block abzufangen. In PyScripter funktioniert das einwandfrei, aber auf den Clients lässt sich damit kein Paket starten.
In der PyScripter-Umgebung wird beim Starten der Ausführungskonfiguration "install" der Wert True oder False sowie der entsprechende Rückgabecode korrekt angezeigt.
Sobald das Paket im Repository vorhanden und auf einem Testrechner bereitgestellt ist, erhalte ich folgende Fehlermeldung:
Ich habe versucht, die Variable cctkerrorcode am Anfang der Funktion ispwddefined() zu definieren, und hier ist etwas noch Merkwürdigeres: Das Paket wird erfolgreich installiert, und das Ergebnis lautet:
Ich habe den Eindruck, dass er in diesem Fall den cctk-Fehler nicht sieht...
Ich muss zugeben, dass ich langsam nicht mehr das umsetze, was ich eigentlich kann...
Weiß jemand, wie man Rückgabecodes auf einfachere Weise erfassen kann?
Vielen Dank im Voraus für Ihre Hilfe.
Seb.
Ich versuche, mit dem cctk-Tool von DELL ein Konfigurationspaket für das UEFI-BIOS zu erstellen.
Manche Computer sind durch ein BIOS-Passwort geschützt, andere nicht. Da wir nicht möchten, dass BIOS-Passwörter im Klartext übertragen werden, habe ich mit CCT zwei ausführbare Dateien erstellt: eine zum Entfernen des Passworts und eine zum Zurücksetzen.
Ich möchte in meinem WAPT-Paket folgende Schritte befolgen:
- Prüfen Sie, ob ein Passwort festgelegt ist
- Falls ja, führen Sie die ausführbare Datei aus, die es löscht
- Die vorgegebenen Änderungen vornehmen
- Starten Sie die ausführbare Datei, die das Passwort zurücksetzt
Mein Problem ist, dass ich diesen Rückgabecode nicht erfassen kann.
Wenn ich meine Bestellung aufgebe:
Code: Alle auswählen
run (r'"C:\Program Files (x86)\Dell\Command Configure\X86_64\cctk.exe" --numlock=enabled --valsetuppwd=impossiblepasswd'")Code: Alle auswählen
Traceback (most recent call last):
File "C:\Program Files (x86)\wapt\common.py", line 3851, in install_wapt
exitstatus = setup.install()
File "C:\waptdev\iut-dell-bios-configuration-wapt\setup.py", line 39, in install
run (r'"C:\Program Files (x86)\Dell\Command Configure\X86_64\cctk.exe" --numlock=enabled --valsetuppwd=impossiblepasswd', return_stderr=errlist, accept_returncodes=[0,3])
File "C:\Program Files (x86)\wapt\common.py", line 3630, in run
return ensure_unicode(setuphelpers.run(*arg,pidlist=self.pidlist,**args))
File "C:\Program Files (x86)\wapt\setuphelpers.py", line 1066, in run
raise CalledProcessErrorOutput(proc.returncode,cmd,''.join(output+return_stderr))
CalledProcessErrorOutput: Command '"C:\\Program Files (x86)\\Dell\\Command Configure\\X86_64\\cctk.exe" --numlock=enabled --valsetuppwd=impossiblepasswd' returned non-zero exit status 58.
Output:
The setup password provided is incorrect. Please try again.Ich habe versucht, den Rückgabewert des Befehls in einem try/except-Block abzufangen. In PyScripter funktioniert das einwandfrei, aber auf den Clients lässt sich damit kein Paket starten.
Code: Alle auswählen
# -*- coding: utf-8 -*-
from setuphelpers import *
import subprocess
uninstallkey = []
def ispwddefined():
try:
print (subprocess.check_output(["C:\Program Files (x86)\Dell\Command Configure\X86_64\cctk.exe", "--numlock=enabled", "--valsetuppwd=impossiblepasswd "]).decode())
except subprocess.CalledProcessError, e:
cctkerrorcode = e.returncode
print cctkerrorcode
if (cctkerrorcode == 58):
print "password configured"
return True;
elif(cctkerrorcode == 106):
print ("no password configured")
return False
def install():
print ispwddefined()
Code: Alle auswählen
Ligne de Commande : install "C:\waptdev\iut-dell-bios-configuration-wapt\WAPT\.."
Using config file: C:\Program Files (x86)\wapt\wapt-get.ini
Installing WAPT files C:\waptdev\iut-dell-bios-configuration-wapt
58
password configured
TrueCode: Alle auswählen
UnboundLocalError: local variable 'cctkerrorcode' referenced before assignmentCode: Alle auswählen
NumLock=Enabled
NoneIch muss zugeben, dass ich langsam nicht mehr das umsetze, was ich eigentlich kann...
Weiß jemand, wie man Rückgabecodes auf einfachere Weise erfassen kann?
Vielen Dank im Voraus für Ihre Hilfe.
Seb.