Au début d'un processus à distance dans Powershell, l'obtention d' %ERRORLEVEL% dans Windows
Un peu de contexte:
Je suis en train de démarrer et d'arrêter de compteurs de performance à distance au début d'un test, puis s'arrêter à la fin de l'essai. Je suis en train de faire cela à partir d'un test automatisé cadre d'un Win2003 de la machine, le framework de test exécute les commandes sans avoir à lancer une console, une partie du système sous test est en cours d'exécution Win2008. J'ai écrit des scripts pour choisir les compteurs de performance basé sur les rôles attribués aux serveurs.
Mon problème(s):
logman
ne peut pas démarrer ou arrêter les compteurs sur les ordinateurs qui exécutent une version ultérieure du système d'exploitation.psexec
peut être utilisé pour exécuter logman à distance, mais psexec aime à se bloquer par intermittence lorsque vous exécutez à partir de la structure de test. Il fonctionne très bien manuellement à partir de la ligne de commande. Je suppose que c'est parce que le processus appelant ne fournit pas une console, ou à un malaise. Il n'y a pas beaucoup que je peux faire à ce sujet (GRRRR)- J'ai écrit un script PowerShell qui exécute logman à distance à l'aide de WMI est
win32_process
et l'a appelé à partir d'un script de commandes, cela fonctionne bien. Cependant, le framework de test décide de succès et d'échec des scénarios basés sur les%ERRORLEVEL%
et le contenu de stderr, mais WMIwin32_process
ne me donne pas accès à l'un ou l'autre. Donc, si les compteurs ne parviennent pas à démarrer le test de la charrue sur de toute façon et les déchets de tous les temps.
Je suis à la recherche d'une solution qui me permet d'exécuter un programme sur un ordinateur distant, vérifiez le code de retour du programme et/ou d'un tuyau, stderr retour à l'appelant. Pour des raisons de simplicité, il doit être rédigé dans les outils qui sont disponibles sur un de vanille Win2k3 boîte. J'aimerais vraiment préférez ne pas utiliser une alambiqué collection de scripts qui vidage de choses dans les fichiers journaux, puis les lire à nouveau.
Quelqu'un a eu un problème similaire, et résolu, ou au moins vous avez une suggestion?
OriginalL'auteur Gareth Davidson | 2011-03-14
Vous devez vous connecter pour publier un commentaire.
PowerShell n'est pas un outil natif dans Windows 2003. Voulez-vous toujours de balise à cette question PowerShell et j'attends la réponse? De toute façon, je vais vous donner une PowerShell réponse.
Cela nécessite de PowerShell 2.0 sur le système où vous êtes l'exécution de ces scripts. Votre Windows 2003 système distant n'a pas vraiment besoin de PowerShell.
PS: Si vous avez besoin d'un cours intensif sur PowerShell et WMI, ne lire mon eGuide: Langage de Requêtes WMI via PowerShell
Register-WmiEvent
etWin32_ProcessStopTrace
, semble être exactement ce dont j'ai besoin 🙂Oh, et j'ai été absent à partir de Windows depuis un certain temps, je ne savais pas que powershell n'est pas sur Win2k3 par défaut. C'est sur notre environnement, donc je l'utilise.
presque à chaque fois quand je vois vous répondre, j'apprends quelque chose de nouveau à propos de WMI 🙂 +1
merci! Content que mes réponses sont utiles. Vous me battre sur toutes les autres questions. J'ai besoin d'un plus rapide lecteur de flux RSS 🙂
OriginalL'auteur ravikanth