J'ai un script VB qui doit exécuter psexec pour lancer une application appelée md5 sur un serveur distant. Md5 génère une clé de hachage d'un fichier et prend un paramètre - le chemin du fichier \ nom. J'ai besoin de récupérer la clé has qui est générée pour stocker dans une variable. Ci-dessous le code que j'utilise:Psexec ne génère pas de fichier journal dans le script VB
Set objShell = CreateObject("Wscript.Shell")
strcomputer = "remotecomputer"
tempDest = "C:\somedir"
filename = "somefile"
strCommand = "psexec -accepteula \\" & strcomputer & " -c md5.exe " & tempDest & "\" & filename & " > log.txt"
Set objExecObject = objShell.Exec("%comspec% /c " & strCommand)
Do While objExecObject.Status <> 1 'loop until previous process has finished
WScript.Sleep 100
Loop
La commande MD5 est exécutée mais rien n'est écrit dans le fichier journal. Lorsque je copie et collez strCommand (en substituant toutes les variables pour les données réelles) dans une invite cmd et l'exécutez, il écrit avec succès la sortie de Md5 dans le fichier journal.
À la fin de la journée, j'ai juste besoin de la sortie de Md5, si quelqu'un connaît un meilleur moyen que de l'écrire dans un fichier journal s'il vous plaît faites le moi savoir. J'ai déjà essayé d'utiliser objExecObject.StdOut.Readall() pour essayer d'attraper la sortie qui a abouti à des échecs aléatoires - parfois, il attraperait la sortie, parfois il ne le ferait pas, sans rien changer dans le script.
Voir cette réponse et répondre: http://stackoverflow.com/questions/1399191/psexec-redirect-output-to-local-file –
Bonjour, j'ai déjà cmd/c dans ma commande ("% comspec%/c "). Le fichier log.txt est créé sur la machine locale par le script VB mais rien n'y est écrit. Lorsque je cours à partir de l'invite cmd, il crée et écrit dans log.txt. – VBscripter