Page 1 sur 1

[..] Lancer script utilisateur

Posté : lun. 26 mai 2014 15:18
par Otacon95
Bonjour tout le monde, je me suis lancé dans autoit il y a quelques temps, et j'aimerai faire un script qui desinstalle un programme, le problème est que je peux desinstaller le programme quand je suis admin, mais pas quand je suis un utilisateur standard. J'ai donc essayé un runAs mais la mon setup ne se lance carément pas...
Le but serait qu'on ai pas a reécrire le mot de passe pour chaque déploiement, voici mon script :

Code : Tout sélectionner

#include <Process.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#RequireAdmin
if FileExists(@ProgramFilesDir & "\fichier a desinstaller\setup.exe") = 1 then

   Run(@ProgramFilesDir & "\fichier a desinstaller\setup.exe /x")
   WinWaitActive("[CLASS:Uninstall]","", 3); on attend notre fenetre
   Send("{ENTER}"); on fait ENTER
   sleep(25000)
   Send("{ENTER}"); on fait ENTER
EndIf
j'ai pensé a runAs mais ça ne marche pas (même en étant admin)
quelqu'un pour m'aider? ^^

Re: [admin]lancer script utilisateur

Posté : lun. 26 mai 2014 15:21
par Chrnos023
Chaque logiciel à des fenêtres différentes à la désinstallation...
Je ne pense pas que ce code marchera pour tous les logiciels.

Re: [admin]lancer script utilisateur

Posté : lun. 26 mai 2014 15:26
par Chrnos023

Code : Tout sélectionner

WinWaitActive("[CLASS:Uninstall]","", 3); on attend notre fenetre
Ou vas tu chercher cet CLASS: Uninstall?
Ce que tu peux faire est que tu désinstalles le logiciel de ton choix.
Que tu récupères les infos nécessaires que tu stockes dans des variables et il va te falloir analyser les ID contenues dans les fenêtres qui apparaissent et utilisés ensuite des Controlcliks qui vont directement aller sur les ID ciblés.

Re: [admin]lancer script utilisateur

Posté : lun. 26 mai 2014 15:35
par jguinch
Otacon95, merci de modifier le titre du premier message afin qu'il respecte les règles de présentation d'un message.

[..] Lancer script utilisateur

Posté : lun. 26 mai 2014 15:49
par Otacon95
J'ai déjà regardé les noms des fenêtres mais c'est juste que le setup ne se lance pas, je n'aurai aucun soucis après pour ce qui est de cliquer sur desinstaller. J'ai déjà réussi a désinstaller de manière automatique le programme, c'est juste qu'un utilisateur standard ne peut pas le faire, et je ne peux pas me permettre de passer poste par poste pour entrer le mot de passe admin.. :s
comme je l'ai dis le run marche que si on est admin, le runAs ne marche pas même admin, j'ai essayé plusieurs façon différentes de faire le script

Re: [..] Lancer script utilisateur

Posté : lun. 26 mai 2014 15:58
par Chrnos023
Pourquoi à la fin de ce code tu mets un /x ???

Code : Tout sélectionner

Run(@ProgramFilesDir & "\fichier a desinstaller\setup.exe /x")

Re: [..] Lancer script utilisateur

Posté : lun. 26 mai 2014 16:01
par Otacon95
C'était pour forcer la désinstallation^^ ça a marché la premère fois, mais mon seul problème c'est vraiment cette histoire de droit, il faudrait que j'entre une seule fois le mot de passe admin, et pas avoir a le rentrer pour 500 postes :s

Re: [..] Lancer script utilisateur

Posté : lun. 26 mai 2014 16:02
par Chrnos023
Avec ou sans le /x mon code réagit de la même manière.

Re: [..] Lancer script utilisateur

Posté : lun. 26 mai 2014 16:03
par Chrnos023
OK, je regarde mais je suis admin de mon poste la...

Re: [..] Lancer script utilisateur

Posté : lun. 26 mai 2014 16:09
par Otacon95
Comme je l'ai dis, si je le lance chez un utilisateur, ça ne marchera pas automatiquement, il faudra retaper le mot de passe, j'avais essayé de baisse la sécurité windows (empecher l'apparition d'une fenêtre de confirmation)
j'avais essayé çà sinon :

Code : Tout sélectionner

RunAs("Administrateur", "PC-TEST", "Azerty123456789", 0, @ProgramFilesDir & "\fichier a desinstaller\setup.exe ")
mais ça ne marche pas (même admin ça ne me lance pas le setup)

Re: [..] Lancer script utilisateur

Posté : lun. 26 mai 2014 16:14
par jguinch
Est-ce que la commande suivante fonctionne ?

Code : Tout sélectionner

RunAs("Administrateur", @ComputerName, "Azerty123456789", 0, "notepad.exe")

Re: [..] Lancer script utilisateur

Posté : lun. 26 mai 2014 16:17
par Otacon95
ça, ça marche, j'ai rajouté mon exe et ça ne change rien

Re: [..] Lancer script utilisateur

Posté : lun. 26 mai 2014 16:24
par Otacon95
Voici en faite le code entier avec un runAs

Code : Tout sélectionner

#include <Process.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#RequireAdmin
if FileExists(@ProgramFilesDir & "\Microsoft Security Client\setup.exe") = 1 then

   RunAs("Administrateur", @ComputerName, "Azerty123456789", 0, @ProgramFilesDir & "\Microsoft Security Client\setup.exe")
   WinWaitActive("[CLASS:Microsoft Security Essentials]","", 3); on attend notre fenetre
   Send("{ENTER}"); on fait ENTER
   sleep(25000)
   Send("{ENTER}"); on fait ENTER
   
EndIf

Re: [..] Lancer script utilisateur

Posté : lun. 26 mai 2014 16:55
par Bayo
Est-ce que ton dossier Microsoft Security Client a les droits d'execution pour tout le monde? ou pour l'utilisateur au moins.

Re: [..] Lancer script utilisateur

Posté : lun. 26 mai 2014 19:53
par jguinch
Le produit était installé en 64 bits, setup.exe se trouve dans "c:\program files", alors que le script va chercher à l'exécuter depuis "c:\program files (x86)".
Essaies avec ça :
► Afficher le texte
Ensuite, pour le #RequireAdmin et le RunAs : si tu utilises le compte administrateur local (le vrai compte administrateur natif j'entends), tu n'auras pas besoin de #RequireAdmin car le compte administrateur est le seul à ne pas avoir le prompt de l'UAC, donc ça sera transparent.

Re: [..] Lancer script utilisateur

Posté : mar. 27 mai 2014 08:49
par Otacon95
Le setup n'a pas les droits pour tout le monde, il necessite les droits d'admin, mais je ne souhaite pas taper le mot de passe sur des centaines de postes, mon but est de le configurer une fois et qu'il s'executer automatiquement sur tout les postes, je dois rentrer une seule fois ce qui est mot de passe et identifiant

Re: [..] Lancer script utilisateur

Posté : mar. 27 mai 2014 13:18
par jguinch
Il faut différencier plusieurs choses dans ton problème :
- le setup ne se lance pas
- l'utilisateur ne pourra pas lancer le setup car il n'est pas administrateur.

Pour le setup qui ne se lance pas, je pense t'avoir donné la raison (et même une solution) dans mon message précédent.

Pour l'exécution du setup en mode administrateur, il faut là encore prendre deux choses en considération :
- l'exécution sous un compte administrateur
- l'UAC
Pour l'exécution en administrateur, il suffit d'utiliser RunAs.
Pour ce qui est du prompt UAC, c'est plus compliqué si tu veux le supprimer. Si tu spécifies le compte administrateur dans Runas, tu n'auras à priori pas le prompt UAC (je parle du vrai compte administrateur, pas un compte membre du groupe administrateurs local).
Si par contre tu spécifies un compte membre du groupe administrateurs, tu auras le prompt UAC.
Une méthode pour éviter le prompt est de passer par une tâche planifiée.

Donc au final, tu peux essayer simplement ça :
► Afficher le texte