Process Explorerの用語では、 WS Private Bytesですが、タスクマネージャーの用語では、PrivateWorkingSetです。
コマンドラインユーティリティで、プロセス名を指定してこの情報を表示したいと思います。
編集
PowerShellスクリプトも同様に機能します。
あなたPowerShell
が使用することができます:
[編集]
function ProcessInfo
{
param
([String]$processName)
$workingSet = get-counter -counter "\Process($processName)\Working Set - Private" | select -expandproperty countersamples | select cookedvalue
$privateBytes = get-counter -counter "\Process($processName)\Private Bytes" | select -expandproperty countersamples | select cookedvalue
get-process $processName | select `
name, `
@{Name="Private Working Set"; Expression = {$workingSet.CookedValue}},`
@{Name="WS Private Bytes"; Expression = {$privateBytes.CookedValue}}
}
ProcessInfo("winrar")
[編集2]
これは、プロセスIDをパラメーターとして受け取る改良版です。
function GetProcessInfoById
{
param
([int]$processId)
Get-WmiObject -class Win32_PerfFormattedData_PerfProc_Process | where{$_.idprocess -eq $processId} | select `
@{Name="Process Id"; Expression = {$_.idprocess}},`
@{Name="Counter Name"; Expression = {$_.name}},`
@{Name="Private Working Set"; Expression = {$_.workingSetPrivate / 1kb}}
}
GetProcessInfoById 380
そして、これがプロセス名をパラメータとして取るバージョンです。これにより、複数の値(プロセスのインスタンスごとに1つ)が返される場合があり、の値によってプロセスを識別できますProcess Id
。
function GetProcessInfoByName
{
param
([string]$processName)
Get-WmiObject -class Win32_PerfFormattedData_PerfProc_Process | where{$_.name -like $processName+"*"} | select `
@{Name="Process Id"; Expression = {$_.idprocess}},`
@{Name="Counter Name"; Expression = {$_.name}},`
@{Name="Private Working Set"; Expression = {$_.workingSetPrivate / 1kb}}
}
GetProcessInfoByName svchost