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