J'utilise PSEXEC dans un environnement de machine à tester pour démarrer le package de configuration de l'application à tester en tant qu'administrateur, puis exécutez des tests en tant qu'administrateur si nécessaire. PSExec n'est utilisé que pour la partie "Exécuter comme" ici, aucune exécution à distance. L'appel ressemble à ceci:
c:\psexec -u Administrator -p adminpassword -w C:\SystemTests C:\SystemTests\run_system_tests.cmd ...
Le problème est que Jenkins, notre serveur CI, ne capture que le logo de Psexec dans la sortie de la console, mais pas l'impression réelle des tests:
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
C:\SystemTests\run_system_tests.cmd exited with error code 0.
Le script démarré ouvre sa propre fenêtre de console localement et imprime tout de là. Mais ce n'est pas connecté à Jenkins, nous ne saurions donc pas ce que le script a fait et pourquoi les choses peuvent avoir échoué.
Existe-t-il une option pour créer PSexec Imprimer la sortie du programme démarré à STDOUT, au lieu du logo et non Ouvrir une fenêtre de console?
J'ai constaté que vous pouvez diviser la sortie PSEXEC de la sortie distante de cette façon ...
psexec \\wxesbbtlkS02 cmd /c C:\test.bat >tmpfile.txt 2>other.txt
donc, vous obtenez la sortie Psexec dans le other.txt
Fichier et la télécommande dans tmpfile.txt
si vous échappez au> caractère avec un caret, vous pouvez pipeler la sortie dans un fichier. Voir ci-dessous.
c:\PSEXEC -U Administrator -P AdminPassword -W c:\SystemTests C:\SystemTest\Run_System_TestS.CMD ^> OutputFile.txt