none
vbs脚本里可以读取到peformance计数器的信息吗 RRS feed

  • 问题

  • 最近接触vbs,需要用vbs调用system performance monitor的信息。比如 PhysicalDisk-Avg.Disk Queue Length 这样的信息,在系统不设置和开启performance monitor的情况下可以在vbs里面调用吗?
    巧克力安
    2010年9月27日 7:07

答案

全部回复

  • 谢谢 feiyun0112

      可以给个列子给我吗?比如 physicalDisk-Avg.Disk Queue Length 这个计数器怎么调出来。

    是在这个 \root\cimv2 下面找关于physicalDisk 子类吗?

    这个是网站上的一个processor的例子,有些看不明白

    "{impersonationLevel=impersonate}!\-----这个不知道什么意思。

    还有后面的D1,N1 这个还要计算吗。跟直接从performance monitor里出来的结果是一样的吗

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" _
        & strComputer & "\root\cimv2")

    While (True)
        Set object1 = objWMIService.Get( _
        "Win32_PerfRawData_PerfOS_Processor.Name='_Total'")
        N1 = object1.PercentProcessorTime
        'D1 = object1.TimeStamp_Sys100NS
        Wscript.Sleep(1000)
        set object2 = objWMIService.Get( _
        "Win32_PerfRawData_PerfOS_Processor.Name='_Total'")
        N2 = object2.PercentProcessorTime
        D2 = object2.TimeStamp_Sys100NS
    msgbox n1
        ' CounterType - PERF_100NSEC_TIMER_INV
        ' Formula - (1- ((N2 - N1) / (D2 - D1))) x 100
        PercentProcessorTime = (1 - ((N2 - N1)/(D2-D1)))*100

        Wscript.Echo "% Processor Time=" , PercentProcessorTime
      
    end

     


    巧克力安
    2010年9月28日 6:34
  • strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
      & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
    Set colItems = objRefresher.AddEnum _
      (objWMIService, "Win32_PerfFormattedData_PerfDisk_PhysicalDisk").objectSet
    objRefresher.Refresh
    
      For Each objItem in colItems
    
        Wscript.Echo "Average Disk Queue Length: " & objItem.AvgDiskQueueLength
      
      Next
    
    

    http://feiyun0112.cnblogs.com/
    2010年9月30日 1:19
    版主
  • 谢谢。

     

     


    巧克力安
    2010年9月30日 2:20