一点背景:
我试图在测试开始时远程启动和停止一些性能计数器,然后在测试结束时停止它们。我是从 Win2003 机器的自动化测试框架执行此操作,测试框架执行命令而不启动控制台,一些被测系统正在运行 Win2008。我编写了脚本来根据分配给服务器的角色选择性能计数器。
我的问题:
logman
无法在运行更高版本操作系统的机器上启动或停止计数器。psexec
可用于远程运行 logman,但 psexec 在从测试框架运行时喜欢间歇性挂起。它可以从命令行手动运行。我猜这是因为调用进程没有提供控制台,或者类似的尴尬。我对此无能为力(GRRRR)- 我编写了一个 PowerShell 脚本,它使用 WMI 远程执行 logman
win32_process
并从批处理脚本中调用它,这很好。%ERRORLEVEL%
但是,测试框架根据stderr 的内容决定通过和失败的场景,但 WMIwin32_process
并没有让我访问任何一个。因此,如果计数器无法启动,无论如何测试都会继续进行,浪费大家的时间。
我正在寻找一种解决方案,允许我在远程机器上执行程序,检查程序的返回代码和/或将 stderr 管道返回给调用者。为简单起见,它需要用普通 Win2k3 盒子上可用的工具编写。我真的不想使用复杂的脚本集合,将内容转储到日志文件中,然后再次将它们读回。
有没有人遇到过类似的问题并解决了,或者至少有一个建议?