Autoit et windows serveur 2012

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
nibors
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 17 oct. 2016 15:54
Status : Hors ligne

Autoit et windows serveur 2012

#1

Message 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 :)
Modifié en dernier par nibors le mer. 13 déc. 2017 16:59, modifié 1 fois.
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 411
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: Autoit et windows serveur 2012

#2

Message 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
nibors
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 17 oct. 2016 15:54
Status : Hors ligne

Re: Autoit et windows serveur 2012

#3

Message 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 :)
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 411
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: Autoit et windows serveur 2012

#4

Message 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
nibors
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 17 oct. 2016 15:54
Status : Hors ligne

Re: Autoit et windows serveur 2012

#5

Message par nibors »

Bonjour,

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

Bonne journée =)
nibors
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 17 oct. 2016 15:54
Status : Hors ligne

Re: Autoit et windows serveur 2012  

#6

Message 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.
Répondre