[RISOLTO] Pacchetto di installazione del BIOS DELL
Pubblicato: 17 dicembre 2019 - 15:35
Ciao a tutti,
Sto cercando di creare un pacchetto di configurazione per il BIOS UEFI DELL utilizzando il loro strumento cctk.
Alcuni computer hanno una password del BIOS, altri no. Inoltre, non vogliamo che le password del BIOS vengano trasmesse in chiaro, quindi ho generato degli eseguibili usando CCT, uno che rimuove la password e uno che la reimposta.
Vorrei seguire questi passaggi nel mio pacchetto WAPT:
Il mio problema è che non riesco a catturare questo codice di ritorno.
Quando effettuo il mio ordine:
Ho un CalledProcessErrorOutput (normale) che visualizza questo codice di ritorno
Vorrei poter recuperare questo codice di uscita (58 e 106 nel mio caso specifico) per poter verificare la mia prima condizione.
Ho provato a usare try/except sul comando per catturare il codice di ritorno; funziona benissimo in pyscripter, ma è impossibile avviare un pacchetto sui client.
Nell'ambiente PyScripter, l'avvio della configurazione di esecuzione "install" visualizza correttamente il valore True o False, nonché il codice di ritorno pertinente.
Una volta che il pacchetto è nel repository e distribuito su una macchina di prova, ricevo questo errore:
Ho provato a definire la variabile cctkerrorcode all'inizio della funzione ispwddefined(), ed ecco qualcosa di ancora più curioso: il pacchetto ha avuto successo e il risultato è:
Ho l'impressione che in questo caso non veda l'errore cctk...
Devo ammettere che sto iniziando a non essere più all'altezza di ciò che so fare...
Qualcuno sa come catturare i codici di ritorno in un modo più elementare?
Grazie in anticipo per il vostro aiuto.
Seb.
Sto cercando di creare un pacchetto di configurazione per il BIOS UEFI DELL utilizzando il loro strumento cctk.
Alcuni computer hanno una password del BIOS, altri no. Inoltre, non vogliamo che le password del BIOS vengano trasmesse in chiaro, quindi ho generato degli eseguibili usando CCT, uno che rimuove la password e uno che la reimposta.
Vorrei seguire questi passaggi nel mio pacchetto WAPT:
- Controlla se la password è impostata
- In tal caso, eseguire l'eseguibile che lo elimina
- apportare le modifiche programmate
- avviare l'eseguibile che reimposta la password
Il mio problema è che non riesco a catturare questo codice di ritorno.
Quando effettuo il mio ordine:
Codice: Seleziona tutto
run (r'"C:\Program Files (x86)\Dell\Command Configure\X86_64\cctk.exe" --numlock=enabled --valsetuppwd=impossiblepasswd'")Codice: Seleziona tutto
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.Ho provato a usare try/except sul comando per catturare il codice di ritorno; funziona benissimo in pyscripter, ma è impossibile avviare un pacchetto sui client.
Codice: Seleziona tutto
# -*- 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()
Codice: Seleziona tutto
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
TrueCodice: Seleziona tutto
UnboundLocalError: local variable 'cctkerrorcode' referenced before assignmentCodice: Seleziona tutto
NumLock=Enabled
NoneDevo ammettere che sto iniziando a non essere più all'altezza di ciò che so fare...
Qualcuno sa come catturare i codici di ritorno in un modo più elementare?
Grazie in anticipo per il vostro aiuto.
Seb.