2014-01-30 25 views
0

我有一个简单的脚本,创建一个严重的Perfmon计数器,然后启动它们。Perfmon计数器在脚本中不起作用

出于某种原因,脚本中的任何处理器信息计数器,名称中带有CPU的计数器都不起作用。输出文件被创建,但它只包含日期时间值,没有实际的计数器值。但是,如果我将该行复制到命令窗口,它将成功运行。

echo Objective Reporting Data Extraction - %date% - %time% 

REM Write output to this location 
set OUTPUTDIR=PERFMON_CSV 
mkdir %OUTPUTDIR% 

REM Counter collection frequency 
set PERIOD=00:00:05 

REM Create some collectors to collect the Server Health Check perfmon stats 

c:\Windows\System32\Logman.exe create counter Obj_HC_svr_memory_5sec -o "%OUTPUTDIR%\obj_HC_svr_Memory_5sec" -f csv -v mmddhhmm -max 300 -c "\Memory\Available MBytes" "\Memory\Pages/sec" "\Memory\Page faults/sec" "\Memory\Free system page table entries" -si %PERIOD% 
c:\Windows\System32\Logman.exe create counter Obj_HC_svr_bytes_received_5sec -o "%OUTPUTDIR%\obj_HC_svr_bytes_received_5sec" -f csv -v mmddhhmm -max 300 -c "\Network Interface(*)\Bytes Received/sec" -si %PERIOD% 
c:\Windows\System32\Logman.exe create counter Obj_HC_svr_bytes_sent_5sec -o "%OUTPUTDIR%\obj_HC_svr_bytes_sent_5sec" -f csv -v mmddhhmm -max 300 -c "\Network Interface(*)\Bytes Sent/sec" -si %PERIOD% 
c:\Windows\System32\Logman.exe create counter obj_HC_svr_Disk_queue_5sec -o "%OUTPUTDIR%\obj_HC_svr_Disk_queue_5sec" -f csv -v mmddhhmm -max 300 -c "\PhysicalDisk(*)\Avg. Disk Queue Length" -si %PERIOD% 
c:\Windows\System32\Logman.exe create counter obj_HC_svr_Disk_read_5sec -o "%OUTPUTDIR%\obj_HC_svr_Disk_read_5sec" -f csv -v mmddhhmm -max 300 -c "\PhysicalDisk(*)\Avg. Disk sec/Read" -si %PERIOD% 
c:\Windows\System32\Logman.exe create counter obj_HC_svr_disk_write_5sec -o "%OUTPUTDIR%\obj_HC_svr_disk_write_5sec" -f csv -v mmddhhmm -max 300 -c "\PhysicalDisk(*)\Avg. Disk sec/Write" -si %PERIOD% 
c:\Windows\System32\Logman.exe create counter obj_HC_svr_disk_bytes_5sec -o "%OUTPUTDIR%\obj_HC_svr_disk_bytes_5sec" -f csv -v mmddhhmm -max 300 -c "\PhysicalDisk(*)\Disk Bytes/sec" -si %PERIOD% 
c:\Windows\System32\Logman.exe create counter obj_HC_svr_disk_transfer_5sec -o "%OUTPUTDIR%\obj_HC_svr_disk_transfer_5sec" -f csv -v mmddhhmm -max 300 -c "\PhysicalDisk(*)\Disk Transfers/sec" -si %PERIOD% 
c:\Windows\System32\Logman.exe create counter obj_HC_svr_CPU_time_5sec -o "%OUTPUTDIR%\obj_HC_svr_CPU_time_5sec" -f csv -v mmddhhmm -max 300 -c "\Processor Information(*)\% Processor Time" -si %PERIOD% 
c:\Windows\System32\Logman.exe create counter obj_HC_svr_CPU_privileged_5sec -o "%OUTPUTDIR%\obj_HC_svr_CPU_privileged_5sec" -f csv -v mmddhhmm -max 300 -c "\Processor Information(*)\% Privileged Time" -si %PERIOD% 
c:\Windows\System32\Logman.exe create counter obj_HC_svr_CPU_idle_5sec -o "%OUTPUTDIR%\obj_HC_svr_CPU_idle_5sec" -f csv -v mmddhhmm -max 300 -c "\Processor Information(*)\% Idle Time" -si %PERIOD% 
c:\Windows\System32\Logman.exe create counter obj_HC_svr_Processor_5sec -o "%OUTPUTDIR%\obj_HC_svr_Processor_5sec" -f csv -v mmddhhmm -max 300 -c "\System\Processor Queue Length" "\System\Context switches/sec" -si %PERIOD% 


REM Now start them 
c:\Windows\System32\Logman.exe start Obj_HC_svr_memory_5sec 
c:\Windows\System32\Logman.exe start Obj_HC_svr_bytes_received_5sec 
c:\Windows\System32\Logman.exe start Obj_HC_svr_bytes_sent_5sec 
c:\Windows\System32\Logman.exe start obj_HC_svr_Disk_queue_5sec 
c:\Windows\System32\Logman.exe start obj_HC_svr_Disk_read_5sec 
c:\Windows\System32\Logman.exe start obj_HC_svr_disk_write_5sec 
c:\Windows\System32\Logman.exe start obj_HC_svr_disk_bytes_5sec 
c:\Windows\System32\Logman.exe start obj_HC_svr_disk_transfer_5sec 
c:\Windows\System32\Logman.exe start obj_HC_svr_CPU_time_5sec 
c:\Windows\System32\Logman.exe start obj_HC_svr_CPU_privileged_5sec 
c:\Windows\System32\Logman.exe start obj_HC_svr_CPU_idle_5sec 
c:\Windows\System32\Logman.exe start obj_HC_svr_Processor_5sec 

回答

0

问题是需要转义的字符数。例如。我换成

"\Processor Information(*)\% Processor Time" 

"\Processor Information(*)\%% Processor Time"