3

Powershell でプロセスの CPU 使用率を取得する方法について簡単な説明はないようです。私はそれをグーグルで検索し、ここで検索しましたが、決定的なものは何も表示されません。誰かがプロセスのCPUパーセンテージを取得する方法を素人の言葉で説明できますか? ありがとう!

ここから始めましょう ;)

$id4u = gps | ? {$_.id -eq 412}
function get_cpu_percentage {
# Do something cool here
}
get_cpu_percentage $id4u
4

3 に答える 3

2

WMIの使用:

get-wmiobject Win32_PerfFormattedData_PerfProc_Process | ? { $_.name -eq 'powershell' } | select name,  PercentProcessorTime

働き:

    function get_cpu_percentage ($id )
{
(get-wmiobject Win32_PerfFormattedData_PerfProc_Process | ? { $_.idprocess -eq $id.id }).PercentProcessorTime
}

$id4u = gps | ? {$_.id -eq 412}
get_cpu_percentage -id $id4u
于 2012-06-21T07:00:11.380 に答える
-1

これはどう?

gps powershell_ise | Select CPU

これはscriptPropertyであり、リモートシステムには何も表示されません。これは知られています。

于 2012-06-20T18:40:15.740 に答える
-1

get-counter は、システム パフォーマンスに関する情報を提供します。単一プロセスの情報も取得できます。詳細はこちら: http://social.technet.microsoft.com/Forums/lv/winserverpowershell/thread/8d7502d4-9e67-43f7-94da-01755b719cf8およびこちらhttp://blogs.technet.com/b/ heyscriptingguy/archive/2010/02/16/hey-scripting-guy-february-16-2010a.aspx これがあなたが探しているものかどうかはわかりませんが、プロセス名と get-counter を使用した 1 つの可能性を次に示します。 .

注: 複数のプロセッサを使用している場合は、結果をプロセッサの数で割るべきだと思います。この値は、次を使用して取得できます。

$env:NUMBER_OF_PROCESSORS



    function get_cpu_percentage {
    param([string[]]$myProc)
    return (get-counter -Counter "\Process($myProc)\% processor time" -SampleInterval 5 -MaxSamples 5 | select -ExpandProperty countersamples | select -ExpandProperty cookedvalue | Measure-Object -Average).average
    }
    get_cpu_percentage ("powershell")

またはproc idとgpsを使用:

注: get-process によって返される値は、プロセスが起動してから使用された CPU 秒であると思います。CPUの使用率ではありません。

    function get_cpu_since_start{
    param ([system.object]$p)
    $id4ucpu = $p | select-object CPU
    return $id4ucpu.CPU
    }
get_cpu_since_start (gps | ? {$_.id -eq 412})
于 2012-06-22T11:02:00.213 に答える