根据我的理解,以下脚本的输出应包括Windows XP及更高版本中的“Win32_PerfRawData_PerfDisk_PhysicalDisk”,但它在Vista Business 32位Service Pack 2中不适合我。到目前为止,我一直非常不成功的谷歌搜索有关此性能等级的信息。
strComputer = "."
Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\cimv2")
For Each objclass in objWMIService.SubclassesOf()
Wscript.Echo objClass.Path_.Class
Next
这个WMI类在Vista中根本不存在吗?如果只是我,有没有办法修复WMI?我已经尝试过运行winmgmt / resetrepository和winmgmt / resyncperf,但两者都没有帮助。
编辑:已排序和已编辑的输出
剪断... 的
剪断... 的
Win32_PerfFormattedData_PerfDisk_ *缺失。
还试过lodctr / R.没有帮助。
解决
可以在注册表中禁用这些计数器。只需将HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Perfdisk \ Performance \ Disable Performance Counters设置为0并重新启动。
答案 0 :(得分:0)
在Vista上应该没问题。文档here在页面底部显示:
DLL:Windows Server 2003和Windows XP上的Wmicookr.dll,Windows Server 2008和Windows Vista上的WmiPerfInst.dll。
你能检查一下你的盒子上是否存在WmiPerfInst.dll
DLL吗?
要尝试的另一件事是看看你是否可以从相应的RawData类获取统计数据? Vista似乎改变了原始数据转换为熟食数据的方式。我对此的了解相当薄(基于粗略的谷歌搜索),因为我只参与了XP / Svr2k3 / Svr2k8上的WMI - 我认为没有人真的使用 Vista: - )
而且,如果你接受我的答案,即使它没有帮助,至少让我抄袭你的解决方案: - )
可以在注册表中禁用这些计数器。只需将HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Perfdisk \ Performance \ Disable Performance Counters设置为0并重新启动。
但是说真的,谢谢你。在某些时候,我们可能不得不自己支持后Vista,所以它会帮助我们了解这一点。