$results = Get-Counter "\Network Interface(Microsoft Hyper-V Network Adapter)\*" -SampleInterval 1 -MaxSamples 60 #インスタンス名は  (Get-Counter -ListSet "Network Interface").PathsWithInstances を実行して確認してください。例、 "\Network Interface(Microsoft Hyper-V Network Adapter)\*" $csamples = $results.CounterSamples $grouped = $csamples | Group-Object Path $avgbps = ($grouped | Where-Object {$_.Name -match "Bytes Total/sec"} | ForEach-Object {$_.Group.CookedValue} | Measure-Object -Average).Average $maxsent = ($grouped | Where-Object {$_.Name -match "Bytes Sent/sec"} | ForEach-Object {$_.Group.CookedValue} | Measure-Object -Maximum).Maximum $maxrcvd = ($grouped | Where-Object {$_.Name -match "Bytes Received/sec"} | ForEach-Object {$_.Group.CookedValue} | Measure-Object -Maximum).Maximum $maxbps = [Math]::max($maxsent,$maxrcvd) $outerr = ($grouped | Where-Object {$_.Name -match "Packets Outbound Errors"} | ForEach-Object {$_.Group.CookedValue} | Measure-Object -Maximum).Maximum $recerr = ($grouped | Where-Object {$_.Name -match "Packets Received Errors"} | ForEach-Object {$_.Group.CookedValue} | Measure-Object -Maximum).Maximum $bwidth = ($grouped | Where-Object {$_.Name -match "Current Bandwidth"} | ForEach-Object {$_.Group.CookedValue} | Measure-Object -Average).Average $maxqlen = ($grouped | Where-Object {$_.Name -match "Output Queue Length"} | ForEach-Object {$_.Group.CookedValue} | Measure-Object -Maximum).Maximum $outstr = "Avg. Throughput : {0:N2} Mbps ({1:N2} MB/s)" -f ($avgbps * 8 / 1000000),($avgbps / 1000000) $outstr += "`nAvg. Bandwidth Use($($bwidth /1000000)M) : {0:N2} %" -f ($maxbps * 8 / $bwidth * 100) $outstr += "`nMax. Output Queue Length : {0:N0}" -f $maxqlen $outstr += "`nMax. Packets Outbound Errors : {0:N0}" -f $outerr $outstr += "`nMax. Packets Recieved Errors : {0:N0}" -f $recerr $outstr