Page 1 sur 1

executer un script AutoIT en tant qu'Administrateur local ?

Publié : 13 juin 2018 - 16:55
par Jonattend
Bonjour,

J'avance bien sur WAPT et la création de paquet ainsi que la modification de paquet existant.

Dans un cadre pédagogique, je dois installer une application nécessitant, à son premier démarrage (et uniquement à ce moment là), d'insérer un nom, organisation et un numéro de série.

J'ai testé divers choses sans résultat pour l'instant :
- regShot avant et après insertion du serial puis export vers un .reg
- exécution du .reg silencieusement après installation (via le def install() dans le paquet WAPT) : le logiciel ne s'active pas ... il doit peut-être y avoir d'autres modifications / créations de fichiers une fois la licence insérée.

Autre test : via autoit
- installation de l'application via WAPT
- dans le "def install()" de WAPT, exécution d'un script autoit pour démarrer l'application et simuler des saisies clavier ...
L'installation du programme fonctionne bien mais le "souci" est que le script autoit est exécuté via le compte Système ... et le programme, si démarré en compte Système, ne semble pas prendre en compte le script.

Dans mon script autoit, j'ai forcé le lancement du programme en tant qu'Administrateur Local.
Il apparaît bien dans les processus mais mon script autoIT (lancé en compte SYS) ne bouge pas ...
En gros, je me retrouve avec un programme lancé en Administrateur local et un script en attente lancé en tant que compte SYS.
En lançant les deux en compte SYS, pas mieux ...

Je n'ai trouvé aucune option dans le script python pour demandé un lancement du script en tant qu'administrateur ....

Après, peut-être qu'il existe une méthode plus simple ... ?

PS : en installant le logiciel de manière classique PUIS en exécutant mon script autoIT à la main (compte Administrateur du coup), l'activation réussie ...

Merci pour vos pistes ;)

Re: executer un script AutoIT en tant qu'Administrateur local ?

Publié : 14 juin 2018 - 13:45
par Jonattend
Bonjour,
J'ai pu prendre contact avec l'éditeur du logiciel qui vient de me proposer un fichier licence adapté à ma licence et mon établissement.
Donc un copier / coller du fichier licence au bon endroit devrait être OK (via def install()).

Je fais des essais et je vous ferais un feedback ;)

Re: executer un script AutoIT en tant qu'Administrateur local ?

Publié : 14 juin 2018 - 15:56
par Jonattend
Toujours pas ... l'éditeur m'a bien fourni un fichier licence ... mais il faut qu'il soit lancé une fois pour s'activer ... pire, il ouvre une boite de dialogue ... qu'il faut annuler pour enfin voir que le logiciel est activé . . . .... je poursuis mes recherches mais je commence à être à court d'idées :roll:

Re: executer un script AutoIT en tant qu'Administrateur local ?

Publié : 14 juin 2018 - 18:13
par sfonteneau
Deux solution qui fonctionne peu être ? :

Créer une tache planifier "interactive" qui lance l'installation, a mon avis l'émulation clavier fonctionne a l’intérieur.
Autre solution peu être:

Créer un service windows "interactif" qui lance l'installation, puis le lancer .

Dans les deux ces deux solution sont très moche ...

Je ne parviens pas non plus a faire un runas en compte system ni a utiliser psexec en compte system.

Un autre solution:

J'ai déjà vu un copain le faire.

Intégrer dans autoit l’identifiant mot de passe administrateur (je sais que c'est possible)
Lancer l'installation du autoit dans un session_setup l'autoit se lancera automatiquement en administrateur donc.

Par contre ... il est simple de récupérer le mot de passe dans l'autoit ...

Simon

Re: executer un script AutoIT en tant qu'Administrateur local ?

Publié : 15 juin 2018 - 08:49
par Jonattend
Merci pour les pistes ...

J'ai une idée en tête mais je ne sais pas si c'est faisable avec WAPT :
- installation silencieuse du programme via WAPT (compte SYS)
- dans le paquet WAPT, def install() : création d'une tache planifiée interactive au login du compte Administrateur
- dans cette tache, ouverture du fichier autoit lançant le programme + simulation clavier
- toujours dans l'autoIT : suppression de la tache planifiée administrateur + suppression du fichier autoIT lui-même ... + reboot

Peut-être qu'avec un session setup, c'est plus simple ? (j'ai pas encore testé le session setup ...)

Qu'en pensez-vous ?

Re: executer un script AutoIT en tant qu'Administrateur local ?

Publié : 15 juin 2018 - 09:41
par Jonattend
Je viens de faire un essai avec le session_setup : cela fonctionne bien pour mon Administrateur local ... mais le souci est que cela s’exécute aussi pour mes utilisateurs du domaine.

L'idéal serait de pouvoir lancer le session setup une fois pour l'Administrateur et c'est tout.

Il est bien précisé sur la doc que "Le session_setup de chaque paquet n’est exécuté qu”une seule fois par paquet ou version de paquet et par profil utilisateur" ... me faut trouver une astuce pour désactiver le session_setup après qu'il soit lancé par l'Administrateur .....

Actuellement dans mon session_setup() :

Code : Tout sélectionner

run(r'....\fichier_autoIT_activation_logiciel)
Objectif final : session_setup():

Code : Tout sélectionner

run(r'....\fichier_autoIT_activation_logiciel)
"desactiver le session_setup"
"suppression du fichier fichier_autoIT_activation_logiciel"

Re: executer un script AutoIT en tant qu'Administrateur local ?

Publié : 15 juin 2018 - 11:13
par sfonteneau
Le plus simple, faire un condition dans le session setup.

Code : Tout sélectionner

if get_current_user() == u'Administrateur':
         run(r'....\fichier_autoIT_activation_logiciel)

Re: executer un script AutoIT en tant qu'Administrateur local ?

Publié : 15 juin 2018 - 16:51
par Jonattend
Piouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuffffffffff, j'ai enfin réussi !

Merci pour l'astuce du session_setup et du get_current_user() ;)

Dans mon def install(), j'installe le logiciel.

Dans le session_setup():

Code : Tout sélectionner

if get_current_user() == u'Administrateur':
         run(r'....\fichier_autoIT_activation_logiciel)
         delete_ay_next_reboot("C:\xxxxx\fichier_autoIT_activation_logiciel")
J'ai appris pas mal de choses du coup avec tout ça :)
J'ai un second logiciel dans le même genre, je vais reprendre ça et voir le résultat.

Résolu !