Windows 7のperfmon.exeで、powershellに特定の情報を含むcsvファイルを作成させようとしています
ほとんどは機能しますが、3 つのカウンターを無視しているようです。
スクリプトは次のようになります。
$SampleInterval="4"
$MaxSamples="15"
$FileDestinationFolder="C:\Perfmon"
$date = (Get-Date).ToShortDateString()
Get-Counter
$gc = ('\Network Interface(`*)\Current Bandwith',
'\Network Interface(`*)\Packets Recieved/sec',
'\Network Interface(`*)\Packets Sent/sec',
'\PhysicalDisk(_Total)\Disk Write Bytes/sec',
'\PhysicalDisk(_Total)\Disk Read Bytes/sec',
'\Processor(_Total)\% Processor Time',
'\Processor(_Total)\% Idle Time',
'\Memory\% Committed Bytes In Use',
'\Memory\Available MBytes')
Get-Counter -counter $gc -SampleInterval $SampleInterval -MaxSamples $MaxSamples | export-counter -force -path ("$FileDestinationFolder\PerfMon-$date.csv") -FileFormat csv
PhysicalDisk、プロセッサ、およびメモリの統計情報は得られますが、ネットワーク インターフェイスの統計情報は得られません。Network Interface のパスは、Data Collector 自体から取得されます。これがなぜそうなのか、手がかりはありますか?
編集 - それらを単独で読み取ると、Powershell ISE のすべてのネットワーク インターフェイスが出力されますが、内容が csv ファイルに書き込まれないことがわかります。
出力の例は
Timestamp CounterSamples
--------- --------------
06-12-2012 15:13:30 \dkspare03\network interface(intel[r] 82577lm ギガビット ネットワーク接続)\バイト合計/秒:
27101,2080498825
\\dkspare03\network interface(intel[r] centrino[r] ad
vanced-n 6200 agn)\bytes total/sec :
0
現在、Network Interface には、どの NIC を読み取るかを示すエスケープ文字があります。持っていない場合、powershell は次のようにエラーを表示します。
Get-Counter : 内部パフォーマンス カウンター API 呼び出しに失敗しました。エラー: c0000bb9。行:38 文字:12 + Get-Counter <<<< -counter $gc -SampleInterval $SampleInterval -MaxSamples $M axSamples | export-counter -force -path ("$FileDestinationFolder\PerfMon-$date.csv") -FileFormat csv + CategoryInfo : InvalidResult: (:) [Get-Counter], Exception + FullyQualifiedErrorId : CounterApiError,Microsoft.PowerShell.Commands.Ge tCounterCommand