Page 1 sur 1

[R] Script pour lancer cmd en administrateur

Posté : mar. 17 déc. 2013 16:56
par peps
Bonjour à la communauté,

J'aimerais avoir de l'aide pour la création de mon premier script sous AutoIt.

Voici ma demande, j'aimerais un script qui me permettrait de lancer le commande cmd en administrateur et par la suite installer un package .msi se trouvant sur le bureau de la machine.

Merci d'avance,

Re: [..] Script pour lancer cmd en administrateur

Posté : mar. 17 déc. 2013 18:35
par TT22
Pour lancer CMD en administrateur :

Code : Tout sélectionner

#RequireAdmin
Run("cmd", @SystemDir)
Mais pour installer un MSI se trouvant sur le bureau, pas besoin de passer par CMD, autant le faire directement en AutoIt :

Code : Tout sélectionner

#RequireAdmin
Run(@DesktopDir&"\fichier.msi", @SystemDir)

Re: [..] Script pour lancer cmd en administrateur

Posté : mer. 18 déc. 2013 14:42
par peps
Merci TT22 pour ta réponse !! :wink:

Je t'explique pourquoi, je veux passer par un cmd car il faut que j'installe le .msi en administrateur et je ne suis pas administrateur de la machine donc voilà pourquoi l'utilité du cmd en mode administrateur.

j'espère que tu me comprends !! :D

Re: [..] Script pour lancer cmd en administrateur

Posté : mer. 18 déc. 2013 14:49
par TT22
Le fait de passer par CMD ou par AutoIt ne va rien changer :wink:
Quand tu lance CMD sur un compte non administrateur on te demande le mot de passe ce qui permet de lancer CMD en administrateur et donc le MSI.
Si tu lance AutoIt avec #RequireAdmin, au lieu de lancer CMD en administrateur, tu va lancer AutoIt en administrateur puis le MSI.
Le résultat est le même : un MSI exécuté en administrateur.

Tu peux même directement exécuter ton MSI en administrateur :

Code : Tout sélectionner

RunAs("Administrateur", @ComputerName, "Mot De Passe Administrateur", 0, @DesktopDir&"\fichier.msi")

Re: [..] Script pour lancer cmd en administrateur

Posté : mer. 18 déc. 2013 14:57
par peps
OK merci, je vais tenter cela demain au bureau.. :)

Re: [..] Script pour lancer cmd en administrateur

Posté : jeu. 19 déc. 2013 11:05
par peps
Bonjour TT22,

J'ai un problème d’exécution au niveau de mon msi.
La copie se passe bien, mais après l'exécution ne se lance pas.

Peux-tu me dire où est le problème ?

Voici mon script :

#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile_x64=ttx64.exe
#AutoIt3Wrapper_Compile_Both=y
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;Installe de LGPI;
FileCopy ("chemin_réseau", @DesktopDir)
#RequireAdmin
Run(@DesktopDir&"\Nom_de_mon_msi.msi", @SystemDir)

Merci d'avance

Re: [..] Script pour lancer cmd en administrateur

Posté : jeu. 19 déc. 2013 16:30
par peps
Re TT22,

Bon j'ai avancé comme tu peux voir, mais j'ai toujours des soucis.... :(

#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile_x64=Autoit\ttx64.exe
#AutoIt3Wrapper_Compile_Both=y
#AutoIt3Wrapper_UseX64=y
#AutoIt3Wrapper_Res_Language=1036
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#Region --- CodeWizard generated code Start ---
;MsgBox features: Title=Yes, Text=Yes, Buttons=Yes and No, Icon=Question, Timeout=20 ss
If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
$iMsgBoxAnswer = MsgBox(36,"Installation de LGPI","Voulez-vous installer LGPI sur votre poste ?",20)
Select
Case $iMsgBoxAnswer = 6 ;Yes

Case $iMsgBoxAnswer = 7 ;No

Case $iMsgBoxAnswer = -1 ;Timeout

EndSelect
#EndRegion --- CodeWizard generated code End ---


; Installe de LGPI
; Application nécéssitant les droits d'admin
#RequireAdmin
; Affiche en bas à droite un message informant du début de l'installation
TrayTip("Installation","Début de l'installation", 1000)
; Pause de 3 secondes
Sleep(3000)
; Copie du msi du poste0 sur le Desktop du client
FileCopy ("\\Chemin_réseau_du_msi", @DesktopDir)
; Lance le programme d'installation
ShellExecute("Nom_de_l’exécutable.msi")
; Le programme attend que la fenêtre d'installation soit active
; WinWaitActive("Nom_de_l'application", "Please wait while Windows configures Nom_de_l'application")
; Pause
Sleep (5000)
; Suppression de l'éxécutable
FileDelete (@DesktopDir&"\Nom_de_l’exécutable.msi")
; Affiche en bas à droite un message informant que l'installation est terminée
TrayTip("Installation","Fin de l'installation", 1000)
; Pause de 3 secondes
Sleep(3000)


1er : Si je mets non lors de l'invité l'installation se lance quand même (problème :) )
2eme : La suppression du .msi ne se fait pas à la fin de l'installation
3eme : L’enchaînement des TrayTip ne sont pas bon

WinWaitActive est commenté, car je ne sais pas si cela est nécessaire dans mon cas....

Merci d'avance,

Re: [..] Script pour lancer cmd en administrateur

Posté : jeu. 19 déc. 2013 19:24
par TT22
Salut, je pense que ton problème viens de l'utilisation que tu fait de FileCopy.
Et #RequireAdmin ne doit être appelé qu'une seule fois en début de script.

Code : Tout sélectionner

#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile_x64=ttx64.exe
#AutoIt3Wrapper_Compile_Both=y
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;Installe de LGPI;
FileCopy ("chemin_réseau\[color=#00BF00]Nom_de_mon_msi.msi[/color]", @DesktopDir[color=#00BF00]&"\Nom_de_mon_msi.msi"[/color])
[strike][color=#FF0000]; #RequireAdmin[/color][/strike]
Run(@DesktopDir&"\Nom_de_mon_msi.msi", @SystemDir)

Re: [..] Script pour lancer cmd en administrateur

Posté : jeu. 19 déc. 2013 21:50
par Tlem
@peps
Merci de rajouter les balises de code dans vos messages précédents.