AUTOIT et LocalGPo

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
cheap66
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 12 avr. 2018 15:30
Status : Hors ligne

AUTOIT et LocalGPo

#1

Message par cheap66 » lun. 25 juin 2018 21:20

Bonsoir,

Je cherche à restaurer des GPO avec AUTOIT.

Les commandes fonctionnent en shell classique

Voici le détail de ma fonction:

Func localGPOrestore()
; ShellExecuteWait (@ScriptDir&"\livraison NCIA\GPO\LocalGPO.msi", '"/quiet /passive"')
$CMD = '"C:\Windows\system32\cmd.exe /t:17 /E:ON /F:ON /K prompt [COS CONSOLE] $P$G$"'
Run(@ComSpec & " /c " & $CMD)
Sleep(2000)
send ("C:")
Sleep(500)
send ("{ENTER}")
Sleep(500)
send ("cd C:\Users\csi\Desktop\autoitest\install 18.3\livraison NCIA\GPO")
Sleep(500)
send ("{ENTER}")
Sleep(500)
send ("LGPO.exe /g C:\Users\Public\Documents\{64DBA341-FCBC-4430-9D57-D2D513A1EA9F}")
send ("{ENTER}")
Sleep(50000)
send ("exit")
Sleep(500)
send ("{ENTER}")
EndFunc

J'ai un message d'erreur me disant que C:\Users\Public\Documents\6 n'existe pas
Quelle ponctuation dois-je utiliser?

jpascal
Niveau 4
Niveau 4
Messages : 99
Enregistré le : jeu. 16 oct. 2008 15:21
Status : Hors ligne

Re: AUTOIT et LocalGPo

#2

Message par jpascal » lun. 02 juil. 2018 13:06

La commande Send essaie d'insérer la touche {64DBA341-FCBC-4430-9D57-D2D513A1EA9F}

Essaie la commande :
send ("LGPO.exe /g C:\Users\Public\Documents\\{64DBA341-FCBC-4430-9D57-D2D513A1EA9F\}")

Et pour écrire dans la fenêtre, le mieux est d'utiliser StdinWrite() en ayant au préalable utilisé :
Run($cmd, @ScriptDir, @SW_HIDE, $STDIN_CHILD + $STDERR_CHILD + $STDOUT_CHILD)

Je ne rentre pas dans les détails et te laisse consulter l'aide si tu es intéressé.
AutoIt 3.3.15.1-1 / SciTE 4.1.0 / Windows 7 & 10 x64

cheap66
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 12 avr. 2018 15:30
Status : Hors ligne

Re: AUTOIT et LocalGPo

#3

Message par cheap66 » lun. 02 juil. 2018 13:33

merci jpascal,
je viens de tester et ça fonctionne en mettant le premier \ après { au lieu de le mettre avant.

Encore une fois, merci pour ton aide.

cheap66
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 12 avr. 2018 15:30
Status : Hors ligne

Re: AUTOIT et LocalGPo

#4

Message par cheap66 » ven. 24 août 2018 15:19

Bonjour jpascal. Comme tu me l’as demandé en MP, je te repose ma question directement sur le forum.



cheap66 a écrit :
ven. 24 août 2018 08:33
Bonjour jpascal,

Sais-tu comment je pourrais faire pour pouvoir sélectionner le répertoire en question (par exemple avec FileSelectFolder) puis utiliser la valeur en question pour recréer la commande à envoyer après mon LGPO.exe?

exemple fileselectfolder me ressort C:\répertoire\{2156453353531544561586}
et je voudrais pouvoir lancer la commande
send ("LGPO.exe /g C:\répertoire\{\2156453353531544561586\}")

Merci d'avance pour tes propositions.

Cheap

Sujet : AUTOIT et LocalGPo
jpascal a écrit :
lun. 02 juil. 2018 13:06
La commande Send essaie d'insérer la touche {64DBA341-FCBC-4430-9D57-D2D513A1EA9F}

Essaie la commande :
send ("LGPO.exe /g C:\Users\Public\Documents\\{64DBA341-FCBC-4430-9D57-D2D513A1EA9F\}")

Et pour écrire dans la fenêtre, le mieux est d'utiliser StdinWrite() en ayant au préalable utilisé :
Run($cmd, @ScriptDir, @SW_HIDE, $STDIN_CHILD + $STDERR_CHILD + $STDOUT_CHILD)

Je ne rentre pas dans les détails et te laisse consulter l'aide si tu es intéressé.

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5758
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: AUTOIT et LocalGPo

#5

Message par mikell » sam. 25 août 2018 15:46

Faut penser au paramètre "raw" de Send() :wink:

$folder = "C:\répertoire\{2156453353531544561586}"  ; retour de FileSelectFolder
send ("LGPO.exe /g " & $folder, 1)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

cheap66
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 12 avr. 2018 15:30
Status : Hors ligne

Re: AUTOIT et LocalGPo

#6

Message par cheap66 » sam. 25 août 2018 21:11

Bonsoir mikell, merci pour ta réponse.
Le souci que j'ai est que les {} ne sont pas comprises, il faut rajouter un \ après le { et un \ avant le \ et c'est cela que je ne sais pas faire.

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5758
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: AUTOIT et LocalGPo

#7

Message par mikell » dim. 26 août 2018 09:29

Ah ? chez moi ça marche... mais si c'est indispensable tu peux faire comme ça

$folder = FileSelectFolder(....)
$folder = StringRegExpReplace($folder, '(?<=\{)|(?=\})', "\\")
;Msgbox(0,"", $folder)
send ("LGPO.exe /g " & $folder, 1)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

cheap66
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 12 avr. 2018 15:30
Status : Hors ligne

Re: AUTOIT et LocalGPo

#8

Message par cheap66 » dim. 26 août 2018 12:51

Merci mikell,

tu avais raison, il n'y avait pas besoin de rajouter les \.

ça fonctionne à merveille.

Je te remercie encore.

Répondre