web-dev-qa-db-fra.com

La sortie de la redirection du processus a commencé localement avec PSEXEC

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?

6
ygoe

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

3
SteveC

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

1
IT_AUDITOR_AEric