Page 1 sur 2
[RESOLU] runAs administrateur sans mot de passe (quand le compte system n'est pas suffisant) \o/
Posté : 25 sept. 2019 - 15:08
par olaplanche
Je partage un truc que je viens d'arriver à faire et que je n'ai jamais vu sur le forum.
Je vous prends l'exemple de mon dernier paquet pour installer le logiciel Archiwizard v8.0.1 :
Il s'agit d'un fichier msi, le setup renvoie la mauvaise uninstallkey, donc on oublie la commande install_msi_if_needed...
Le msi ne s'installe silencieusement que sous le compte administrateur, donc on oublie la commande run vu qu'un paquet est exécuter sous le compte system...
Pour contourner tous ces problèmes, depuis le compte system il est possible d’exécuter en powershell un process en administrateur sans avoir à fournir le mot de passe ! Et le top c'est quand fournissant la bonne uninstallkey dans le paquet récupérée avec la commande "wapt-get list-registry archiwizard", l'uninstall de l'appli fonctionne correctement.
Place au code de mon paquet :
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = ['{AF474B4B-28ED-4AAE-A623-BB78E4D4AEC7}']
def install():
print('installing wapt-archiwizard')
run_powershell('Start-Process msiexec.exe -Wait -ArgumentList "/I %s\ArchiWIZARD-2020-x64(8.0.1).msi /quiet" -verb runAs' % basedir)
Re: [RESOLU] runAs administrateur sans mot de passe (quand le compte system n'est pas suffisant) \o/
Posté : 25 sept. 2019 - 16:05
par htouvet
Merci, très intéressant...
un petit correctif :
ajouter un "r" devant la commande powershell car il ya des backslashs qui pourraient être interprétés.
Code : Tout sélectionner
run_powershell(r'Start-Process msiexec.exe -Wait -ArgumentList "/I %s\ArchiWIZARD-2020-x64(8.0.1).msi /quiet" -verb runAs' % basedir)
Re: [RESOLU] runAs administrateur sans mot de passe (quand le compte system n'est pas suffisant) \o/
Posté : 25 sept. 2019 - 16:32
par olaplanche
ok merci.
Je cherche maintenant à créer une clé de registre dans le session setup pour l'activation du logiciel :
Code : Tout sélectionner
def session_setup():
registry_set(HKEY_CURRENT_USER,makepath('Software','Graitec','License Manager'),'GRAITEC_LICENSE_FILE',r'7621@servername;',type=REG_SZ)
Seulement la clé "Graitec" est existante, il faut donc créer la clé "License Manager" puis la valeur reg_sz "GRAITEC_LICENSE_FILE".
Mon code ne fonctionne pas, avez vous une idée ?
Re: [RESOLU] runAs administrateur sans mot de passe (quand le compte system n'est pas suffisant) \o/
Posté : 25 sept. 2019 - 23:11
par vcardon
Olivier,
Ca fait super plaisir de voir comment vous avez progressé avec l'outil et que vous prenez une partie du temps que vous économisez avec l'outil aujourd'hui pour partager des trucs super astucieux avec d'autres.
Chez Tranquil IT, on est très logiciels libres, même si on est bien conscient qu'il est difficile de vivre d'un modèle strictement libre et communautaire.
Voir votre initiative de partage d'expérience nous aide à nous rassurer que nous faisons quelque chose d'utile et que nous parvenons à embarquer des personnes intéressées et motrices dans l'aventure.
Cordialement.
Vincent
Re: [RESOLU] runAs administrateur sans mot de passe (quand le compte system n'est pas suffisant) \o/
Posté : 26 sept. 2019 - 08:54
par olaplanche
J'ai résolu le problème de registre, j'oublie toujours d'ajouter un r devant la chaine de caractère pour éviter que certains caractères soient interprétés (l'espace dans mon cas).
Code définitif du paquet :
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = ['{AF474B4B-28ED-4AAE-A623-BB78E4D4AEC7}']
def install():
print('installing wapt-archiwizard')
run_powershell(r'Start-Process msiexec.exe -Wait -ArgumentList "/I %s\ArchiWIZARD-2020-x64(8.0.1).msi /quiet" -verb runAs' % basedir)
def session_setup():
registry_set(HKEY_CURRENT_USER,r'Software\\Graitec\\License Manager','GRAITEC_LICENSE_FILE','serverport@servername;',type=REG_SZ)
En réponse à vcardon :
C'est avec plaisir que je partage mes trouvailles, je suis fan du produit wapt et j'adhère à votre modèle libre et communautaire.
Au plaisir de rencontrer l'équipe au rdv des AdminSys à Toulouse le 17 octobre
Merci
Re: [RESOLU] runAs administrateur sans mot de passe (quand le compte system n'est pas suffisant) \o/
Posté : 30 avr. 2020 - 10:23
par florentR2
Code : Tout sélectionner
run_powershell(r'Start-Process msiexec.exe -Wait -ArgumentList "/I %s\ArchiWIZARD-2020-x64(8.0.1).msi /quiet" -verb runAs' % basedir)
Bonjour,
Ce cas m'interesse vraiment.
Avec l'options powershell
runAs cela lance en tant qu'administrateur sans demander aucune autre infos ni mot de passe ?
Re: [RESOLU] runAs administrateur sans mot de passe (quand le compte system n'est pas suffisant) \o/
Posté : 30 avr. 2020 - 10:38
par olaplanche
Oui aussi étrange que cela puisse paraitre ça fonctionne sans avoir fournir le mot de passe du compte admin...
Pour être plus précis ça fonctionne lorsque la commande powershell est exécutée par le compte system, évidemment que ça ne fonctionne pas depuis un compte utilisateur.
J'ai résolu tous mes problèmes de vieux logiciels ne s'installant pas correctement avec le compte system comme ça et jusqu'à ce jour ça a fonctionné à chaque fois !
Re: [RESOLU] runAs administrateur sans mot de passe (quand le compte system n'est pas suffisant) \o/
Posté : 30 avr. 2020 - 10:45
par florentR2
Cool merci ça peut aussi dépanner qui aime pas le compte SYSTEM pour une install
Re: [RESOLU] runAs administrateur sans mot de passe (quand le compte system n'est pas suffisant) \o/
Posté : 30 avr. 2020 - 14:48
par sfonteneau
Pouvez-vous essayer avec la fonction run_as_administrator ?
Code : Tout sélectionner
from common import run_as_administrator
run_as_administrator('sample.exe','--args')
Re: [RESOLU] runAs administrateur sans mot de passe (quand le compte system n'est pas suffisant) \o/
Posté : 06 mai 2020 - 17:31
par florentR2
sfonteneau a écrit : ↑30 avr. 2020 - 14:48
Pouvez-vous essayer avec la fonction run_as_administrator ?
Pour le test que je fait (Autocad 2020) la commande marche bien sur la machine de packaging si je teste le package.
Par contre je n'arrive toujours pas à déployer le logiciel sur une machine.
Le problème est peut etre ailleurs je vais faire un nouveau sujet ce sera surement mieux.