Page 1 sur 1

[R] Récupérer le résultat de RunAs.

Posté : jeu. 17 juil. 2008 17:31
par molbento
Bonjour,
Je souhaite arrêter et redémarrer un service windows a distance pour cela j'utilise la commande suivante :

Code : Tout sélectionner

RunAs("admin","domain","mdp","sc \\Terre stop wuauserv")
ou terre est le nom de mon serveur. et wuauserv est le nom du service que je souhaite arreter.

quand je tape cette commande dans une fenêtre dos le résultat que j'obtiens est le suivant :

Code : Tout sélectionner

SERVICE_NAME: wuauserv
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : [color=#FF0000]3[/color]  STOP_PENDING
                                (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x1
        WAIT_HINT          : 0x3a98
Je souhaiterais récupérer le résultat de la commande dans un fichier .txt mais je ne sais pas comment faire.
Quelqu'un peut-il m'aider
merci d'avance

Re: [...] Récupérer le résultat d'une commande ds une varriable

Posté : jeu. 17 juil. 2008 18:16
par jbnh
mhhh, je comprend pas très bien la manière dont ton script fonctionne mais voici un exemple pour je l'espère t'aider.

Code : Tout sélectionner

#include <Constants.au3>

$info = ''
    
$foo = Run(@ComSpec & ' /c LACOMMANDE', @SystemDir, @SW_HIDE, $STDOUT_CHILD)
While 1
    $info &= StdoutRead($foo)
    If @error Then ExitLoop
WEnd


FileWrite("test.txt", $info)

Re: [..] Récupérer le résultat de RunAs.

Posté : ven. 18 juil. 2008 00:29
par Tlem
Adapter à la situation, cela donne :

Code : Tout sélectionner

$info = ''

$foo = RunAs("admin", "domain", "mdp", 0, "sc \\Terre stop wuauserv", "", @SW_HIDE, 2 )

While 1
    $info &= StdoutRead($foo)
    If @error Then ExitLoop
WEnd
    
$aInfo = StringSplit($info, @CRLF)

For $i = 1 To $aInfo[0]
    If StringInStr($aInfo[$i], "STATE") Then
        $info = StringMid($aInfo[$i] , 30, 1)
    EndIf
Next

If StringLen($info) > 1 Then
    MsgBox(16,"Erreur", "Erreur de lecture de l'état (Service déjà modifié).")
Else
    MsgBox(64,"Info",$info)
EndIf