[RESOLU] paquet de configuration des bios DELL
Posté : 17 déc. 2019 - 15:35
Bonjour à tous,
je suis en train d'essayer de créer un paquet de configuration des BIOS UEFI DELL via leur outil cctk.
Certains postes ont un mot de passe de protection du BIOS, d'autres non. Bous ne voulons pas non plus que les mdp des BIOS circulent en clair, j'ai donc généré des executables via CCT, un qui supprime le mdp et un qui le remet.
Je voudrais dans mon paquet WAPT, suivre les étapes suivantes :
Mon problème est que je n'arrive pas à capturer ce code de retour.
Lorsque je lance ma commande :
J'ai un CalledProcessErrorOutput (normal) qui m'affiche ce code de retour
Je voudrais pouvoir récupérer ce code de sortie (58 et 106 dans mon cas précis) pour pouvoir vérifier ma première condition.
j'ai essayé un try/except sur la commande pour capturer le returncode, ça fonctionne super dans pyscripter mais impossible de lancer un paquet sur les clients.
dans l'environnement PyScripter lancer la conf d'execution "install" m'affiche bien le True ou le False ainsi que le returncode concerné.
Une fois le paquet sur le dépôt et déployé sur un poste de test, j'ai cette erreur :
J'ai essayé de définir la variable cctkerrorcode au début de la fonction ispwddefined() et là, c'est encore plus curieux, le paquet est en succès et le résultat est :
J'ai l'impression que dans ce cas là, il ne voit pas l'erreur cctk...
Je vous avoue que je commence à être loin de ce que je sais faire...
Est-ce que quelqu'un sait comment capturer les codes de retour d'une manière un peu plus basique?
Merci d'avance de votre aide.
Seb.
je suis en train d'essayer de créer un paquet de configuration des BIOS UEFI DELL via leur outil cctk.
Certains postes ont un mot de passe de protection du BIOS, d'autres non. Bous ne voulons pas non plus que les mdp des BIOS circulent en clair, j'ai donc généré des executables via CCT, un qui supprime le mdp et un qui le remet.
Je voudrais dans mon paquet WAPT, suivre les étapes suivantes :
- Vérifier si le mdp est défini
- si oui lancer l'executbale qui le supprime
- apporter les modifications scriptées
- lancer l'executable qui redéfinit le mdp
Mon problème est que je n'arrive pas à capturer ce code de retour.
Lorsque je lance ma commande :
Code : Tout sélectionner
run (r'"C:\Program Files (x86)\Dell\Command Configure\X86_64\cctk.exe" --numlock=enabled --valsetuppwd=impossiblepasswd'")
Code : Tout sélectionner
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.
j'ai essayé un try/except sur la commande pour capturer le returncode, ça fonctionne super dans pyscripter mais impossible de lancer un paquet sur les clients.
Code : Tout sélectionner
# -*- 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 : Tout sélectionner
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
True
Code : Tout sélectionner
UnboundLocalError: local variable 'cctkerrorcode' referenced before assignment
Code : Tout sélectionner
NumLock=Enabled
None
Je vous avoue que je commence à être loin de ce que je sais faire...
Est-ce que quelqu'un sait comment capturer les codes de retour d'une manière un peu plus basique?
Merci d'avance de votre aide.
Seb.