
記事記号:[mdAc68] 初版:2010/Dec/28

名前
Get-Process
概要
ローカル コンピューターまたはリモート コンピューター上で実行されているプロセ
スを取得します。
構文
Get-Process [[-Name] <string[]>] [-ComputerName <string[]>] [-
FileVersionInfo] [-Module] [<CommonParameters>]
Get-Process -Id <Int32[]> [-ComputerName <string[]>] [-FileVer
sionInfo] [-Module] [<CommonParameters>]
Get-Process -InputObject <Process[]> [-ComputerName <string[]>
] [-FileVersionInfo] [-Module] [<CommonParameters>]
説明
Get-Process コマンドレットは、ローカル コンピューターまたはリモート コンピュ
ーター上のプロセスを取得します。
パラメーターが指定されていない場合、Get-Process はローカル コンピューター上
のすべてのプロセスを取得します。また、特定のプロセスを指定するには、プロセス
名またはプロセス ID (PID) を指定するか、パイプラインを介して Get-Process に
プロセス オブジェクトを渡します。
既定では、Get-Process は、プロセスに関する詳細情報を格納すると共にプロセスを
開始または停止するメソッドをサポートするプロセス オブジェクトを返します。ま
た、Get-Process のパラメーターを使用すると、プロセスで実行されるプログラムの
ファイル バージョン情報や、プロセスが読み込んだモジュールを取得できます。
パラメーター
-ComputerName <string[]>
指定されたコンピューターで実行されているプロセスを取得します。既定値はロ
ーカル コンピューターです。
1 台または複数のコンピューターの NetBIOS 名、IP アドレス、または完全修飾
ドメイン名を入力します。ローカル コンピューターを指定するには、コンピュ
ーター名、ドット (.)、または「localhost」を入力します。
このパラメーターは、Windows PowerShell リモート処理に依存しません。コン
ピューターがリモート コマンドを実行するように構成されていない場合でも、G
et-Process の ComputerName パラメーターを使用できます。
必須 false
位置 named
既定値
パイプライン入力を許可する true (ByPropertyName)
ワイルドカード文字を許可する false
-FileVersionInfo [<SwitchParameter>]
プロセスで実行されるプログラムのファイル バージョン情報を取得します。
Windows Vista 以降のバージョンの Windows で、自分が所有していないプロセ
スに対してこのパラメーターを使用するには、Windows PowerShell を開く際に
[管理者として実行] を指定する必要があります。
このパラメーターを使用することは、各プロセス オブジェクトの MainModule.F
ileVersionInfo プロパティを取得することと同等です。このパラメーターを使
用すると、Get-Process は、プロセス オブジェクトではなく FileVersionInfo
オブジェクト (System.Diagnostics.FileVersionInfo) を返します。そのため、
Stop-Process などのプロセス オブジェクトが返されることを想定するコマンド
レットに対してコマンドの出力をパイプ処理することはできません。
必須 false
位置 named
既定値
パイプライン入力を許可する false
ワイルドカード文字を許可する false
-Id <Int32[]>
プロセス ID (PID) を使用して、プロセスを 1 つ以上指定します。複数の ID
を指定するには、ID をコンマで区切ります。プロセスの PID を検索するには、
「get-process」と入力します。
必須 true
位置 named
既定値
パイプライン入力を許可する true (ByPropertyName)
ワイルドカード文字を許可する false
-InputObject <Process[]>
1 つまたは複数のプロセス オブジェクトを指定します。オブジェクトが格納さ
れている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力し
ます。
必須 true
位置 named
既定値
パイプライン入力を許可する true (ByValue)
ワイルドカード文字を許可する false
-Module [<SwitchParameter>]
プロセスによって読み込まれたモジュールを取得します。
Windows Vista 以降のバージョンの Windows で、自分が所有していないプロセ
スに対してこのパラメーターを使用するには、Windows PowerShell を開く際に
[管理者として実行] を指定する必要があります。
このパラメーターは、各プロセス オブジェクトの Modules プロパティを取得す
ることと同等です。このパラメーターを使用すると、Get-Process は、プロセス
オブジェクトではなく ProcessModule オブジェクト (System.Diagnostics.Proc
essModule) を返します。そのため、Stop-Process などのプロセス オブジェク
トが返されることを想定するコマンドレットに対してコマンドの出力をパイプ処
理することはできません。
同じコマンドで Module と FileVersionInfo の両方のパラメーターを使用する
と、Get-Process はすべてのモジュールのファイル バージョンに関する情報を
含む FileVersionInfo オブジェクトを返します。
必須 false
位置 named
既定値
パイプライン入力を許可する false
ワイルドカード文字を許可する false
-Name <string[]>
プロセス名を使用してプロセスを 1 つ以上指定します。複数のプロセス名をコ
ンマで区切って指定することも、ワイルドカード文字を使用することもできます。
パラメーター名 ("Name") は省略可能です。
必須 false
位置 1
既定値
パイプライン入力を許可する true (ByPropertyName)
ワイルドカード文字を許可する true
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
OutBuffer、および OutVariable。詳細については、
「get-help about_commonparameters」と入力してヘルプを参照してください。
入力
System.Diagnostics.Process
プロセス オブジェクトを Get-Process に対してパイプ処理できます。
出力
System.Diagnostics.Process, System.Diagnotics.FileVersionInfo, System.Diagno
stics.ProcessModule
既定では、Get-Process は System.Diagnostics.Process オブジェクトを返しま
す。FileVersionInfo パラメーターを使用すると、System.Diagnotics.FileVers
ionInfo オブジェクトを返します。Module パラメーター (FileVersionInfo パ
ラメーターはなし) を使用すると、System.Diagnostics.ProcessModule オブジ
ェクトを返します。
メモ
Name、ID、InputObject パラメーターを同じコマンドで使用することはできませ
ん。
Get-Process を組み込みエイリアス "ps" および "gps" で参照することもでき
ます。詳細については、「about_Aliases」を参照してください。
また、WMI Win32_Process オブジェクトのプロパティとメソッドを Windows Pow
erShell で使用することもできます。詳細については、「Get-WmiObject」と「W
indows Management Instrumentation (WMI) SDK」を参照してください。
既定では、次の欄を含む表としてプロセスが表示されます。
-- Handles: プロセスがオープンしたハンドルの数です。
-- NPM(K): プロセスが使用している非ページ メモリのサイズ (キロバイト単位
) です。
-- PM(K): プロセスが使用しているページ可能なメモリのサイズ (キロバイト単
位) です。
-- WS(K): プロセスのワーキング セットのサイズ (キロバイト単位) です。ワ
ーキング セットは、プロセスが最近参照したメモリのページで構成されます。
-- VM(M): プロセスが使用している仮想メモリのサイズ (メガバイト単位) です。
仮想メモリには、ディスク上のページング ファイルの記憶領域が含まれます。
-- CPU(s): プロセスがすべてのプロセッサで使用したプロセッサ時間 (秒単位)
です。
-- ID: プロセスのプロセス ID (PID) です。
-- ProcessName: プロセスの名前です。
プロセスに関連する概念の説明については、ヘルプとサポート センターにある
用語集と、タスク マネージャーのヘルプを参照してください。
StartTime や Priority など、Format-Table で利用できるプロセスの組み込み
代替ビューを使用することや、独自のビューを設計することもできます。詳細に
ついては、「Format-Table」を参照してください。
-------------------------- 例 1 --------------------------
C:\PS>Get-Process
説明
-----------
このコマンドは、ローカル コンピューターで実行中のすべてのプロセスの一覧を取
得します。それぞれの欄の定義については、Get-Help のヘルプ トピックの注を参照
してください。
-------------------------- 例 2 --------------------------
C:\PS>Get-Process winword, explorer | format-list *
説明
-----------
このコマンドは、コンピューター上の Winword プロセスと Explorer プロセスに関
して利用可能なすべてのデータを取得します。Name パラメーターを使用してプロセ
スを指定していますが、省略可能なパラメーター名は省略しています。パイプライン
演算子 (|) によってデータが Format-List コマンドレットに渡され、Winword プロ
セス オブジェクトと Explorer プロセス オブジェクトのすべてのプロパティ (*)
が表示されます。
プロセスをプロセス ID で指定することもできます。たとえば、"get-process -id 6
64, 2060" と指定します。
-------------------------- 例 3 --------------------------
C:\PS>get-process | where-object {$_.WorkingSet -gt 20000000}
説明
-----------
このコマンドは、ワーキング セットが 20 MB を超えているプロセスをすべて取得し
ます。まず、Get-Process コマンドレットを使用して、動作中のすべてのプロセスを
取得します。パイプライン演算子 (|) によって、プロセス オブジェクトが Where-O
bject コマンドレットに渡され、WorkingSet プロパティの値が 20,000,000 バイト
を超えるオブジェクトだけが選択されます。
ワーキング セットは、プロセス オブジェクトの多数のプロパティの 1 つです。す
べてのプロパティを表示するには、「Get-Process | Get-Member」と入力します。既
定では、既定の表示がキロバイト単位やメガバイト単位であっても、サイズに関する
プロパティの値はすべてバイト単位で表されます。
-------------------------- 例 4 --------------------------
C:\PS>$a = get-process
C:\PS> get-process -inputobject $a | format-table -view priority
説明
-----------
これらのコマンドを実行すると、コンピューター上のプロセスが優先度クラスに基づ
きグループ分けされます。
最初のコマンドはコンピューター上のすべてのプロセスを取得して、変数 $a に格納
します。
2 番目のコマンドは、InputObject パラメーターを使用して、$a 変数に保存されて
いるプロセス オブジェクトを Get-Process コマンドレットに渡します。オブジェク
トはパイプライン演算子 (|) によって Format-Table コマンドレットに渡され、そ
れらのプロセスは Priority ビューを使用することによって書式設定されます。
Priority ビュー、およびその他のビューは、Windows PowerShell ホーム ディレク
トリ ($pshome) にある PS1XML 形式ファイルで定義されます。
-------------------------- 例 5 --------------------------
C:\PS>get-process powershell -computername S1, localhost | ft @{Label="NP
M(K)";Expression={[int]($_.NPM/1024)}}, @{Label="PM(K)";Expression={[int]($_
.PM/1024)}},@{Label="WS(K)";Expression={[int]($_.WS/1024)}},@{Label="VM(M)";
Expression={[int]($_.VM/1MB)}}, @{Label="CPU(s)";Expression={if ($_.CPU -ne
$()) { $_.CPU.ToString("N")}}}, Id, MachineName, ProcessName -auto
NPM(K) PM(K) WS(K) VM(M) CPU(s) Id MachineName ProcessName
------ ----- ----- ----- ------ -- ----------- -----------
6 23500 31340 142 1980 S1 powershell
6 23500 31348 142 4016 S1 powershell
27 54572 54520 576 4428 localhost powershell
説明
-----------
この例は、MachineName プロパティを標準の Get-Process 出力の表示に追加する Fo
rmat-Table (エイリアスは ft) コマンドを提供します。
-------------------------- 例 6 --------------------------
C:\PS>get-process powershell -fileversioninfo
ProductVersion FileVersion FileName
-------------- ----------- --------
6.1.6713.1 6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0
\powershell.exe
説明
-----------
このコマンドは、FileVersionInfo パラメーターを使用して PowerShell プロセスの
主要なモジュールである PowerShell.exe ファイルのバージョン情報を取得します。
Windows Vista 以降のバージョンの Windows の場合、自分が所有していないプロセ
スでこのコマンドを実行するには、Windows PowerShell を開く際に [管理者として
実行] を指定する必要があります。
-------------------------- 例 7 --------------------------
C:\PS>get-process sql* -module
説明
-----------
このコマンドは Module パラメーターを使用して、プロセスによって読み込まれたモ
ジュールを取得します。このコマンドは、名前が "sql" で始まるプロセスのモジュ
ールを取得します。
Windows Vista (およびそれ以降のバージョンの Windows) の場合、自分が所有して
いないプロセスでこのコマンドを実行するには、Windows PowerShell を起動する際
に [管理者として実行] を指定する必要があります。
-------------------------- 例 8 --------------------------
C:\PS>$p = get-wmiobject win32_process -filter "name='powershell.exe'"
C:\PS> $p.getowner()
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 3
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
Domain : DOMAIN01
ReturnValue : 0
User : user01
説明
-----------
このコマンドは、プロセスの所有者を見つける方法を示します。Get-Process が返す
System.Diagnostics.Process オブジェクトにはプロセスの所有者を返すプロパティ
またはメソッドがないので、このコマンドは Get-WmiObject コマンドレットを使用
して同じプロセスを表す Win32_Process オブジェクトを取得します。
最初のコマンドは、Get-WmiObject を使用して PowerShell プロセスを取得します。
PowerShell プロセスは $p 変数に保存されます。
2 番目のコマンドは、GetOwner メソッドを使用して $p に保存されたプロセスの所
有者を取得します。このコマンドは所有者が Domain01\user01 であることを示して
います。
-------------------------- 例 9 --------------------------
C:\PS>get-process powershell
C:\PS> get-process -id $pid
C:\PS> get-process powershell
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
308 26 52308 61780 567 3.18 5632 powershell
377 26 62676 63384 575 3.88 5888 powershell
C:\PS> get-process -id $pid
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
396 26 56488 57236 575 3.90 5888 powershell
説明
-----------
これらのコマンドは、$pid 自動変数を使用して、現在の Windows PowerShell セッシ
ョンをホストしているプロセスを特定します。このメソッドを使用すると、停止また
は終了する PowerShell プロセスとホスト プロセスを区別できます。
最初のコマンドは、現在のセッションのすべての PowerShell プロセスを取得します。
2 番目のコマンドは、現在のセッションをホストしている PowerShell プロセスを取
得します。
関連するリンク
Online version: http://go.microsoft.com/fwlink/?LinkID=113324
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process

基本ソフト: Windows 7
キーワード: Windows PowerShell、ヘルプ、Alias、ps