Page 1 sur 1

Autoit et windows serveur 2012

Posté : mer. 11 oct. 2017 16:47
par nibors
Bonjour tout le monde :) !

Voila, ça fait maintenant un peu plus d'un an que j'utilise autoit et je viens de tombé sur un soucis que je n'avais jamais rencontré.

J'ai un script de quelque milliers de ligne qui fonctionne parfaitement sur window 7/10 et serveur 2008, mais qui ne fonctionne que partielement sur windows serveur 2012.
Apres recherche il semble, que ce qui ne fonctionne pas vient du fait que la fonction StdoutRead semble ne pas fonctionner sur Windows Server 2012.

Exemple :

Code : Tout sélectionner


;TestStd.au3
#RequireAdmin
Func getSTD(Const $sCMD)
   Local       $sTMP = ''
   Local       $sSTD = ''
   Local Const $iPID = Run(@ComSpec & ' /c ' & $sCMD, '', @SW_HIDE, $STDERR_MERGED)
   While 1 = 1
	  $sTMP = StdoutRead($iPID, False, False)
	  If @error Then
		 ExitLoop
	  Else
		 $sSTD &= $sTMP
		 ConsoleWrite($sTMP)
		 Sleep(50)
	  EndIf
   WEnd
   Return $sSTD
EndFunc

MsgBox(0,1,getSTD("echo toto"))
Sur windows serveur 2012 on obtient une MsgBox vide, alors que sur les autres versions de windows on recupere bien le message "toto".

De plus, chose egalement surprenant, si lancer le script par un click ne fonctionne pas, si on le lance a partir d'un .bat il fonctionne correctement.

test.bat :

Code : Tout sélectionner

TestStd.exe


Donc au final ce n'est pas un enorme probleme puisque je peux lancer mon script sans soucis a partir d'un .bat, mais je me demandais si vous aviez déjà eu ce genre de soucis.
Merci d'avance pour vos retours d'experience :)

Re: Autoit et windows serveur 2012

Posté : mer. 11 oct. 2017 19:02
par jl56
Bonjour à tous,

J'utilise également cette fonction pour récupérer le résultat d'une sauvegarde que je lance via wbadmin
je n'ai aucun problème sur 2008, 2008 r2 2012 , 2012 r2 ,2016 sur des centaines de serveurs

A+

JL56

Re: Autoit et windows serveur 2012

Posté : jeu. 12 oct. 2017 09:46
par nibors
Bonjour,

tout d'abord merci pour ta réponse :).
Dans ce cas j'imagine que ça doit etre un probleme de droit sur les machines, puisque cela fonctionne si le programme est lancé dans un bat.

Bonne journée :)

Re: Autoit et windows serveur 2012

Posté : jeu. 12 oct. 2017 19:02
par jl56
Bonjour,

essaie d'ajouter la ligne #RequireAdmin
en debut de ton script je l'ai dans mes scripts
Dans l'aide c'est noté ceci " Spécifie que le script en cours exige les droits d'administrateur complets pour fonctionner."

A+

JL56

Re: Autoit et windows serveur 2012

Posté : lun. 16 oct. 2017 10:55
par nibors
Bonjour,

comme tu peux le voir dans le code de mon premier message, il y a deja un requireAdmin ^^.

Bonne journée =)

Re: Autoit et windows serveur 2012  

Posté : mer. 13 déc. 2017 17:01
par nibors
Je clos le sujet un peu tard mais la solution pourrait être utile a quelqu'un un jour, sait on jamais.

Le probleme venait de la variable d'environement ComSpec qui n'etait pas definie sur la machine pour une raison ou une autre. Une fois cette variable definie, ca fonctionne.