ローカル コンピューターまたはリモート コンピューター上で実行されているプロセスを取得します。

構文

Get-Process [[-Name] <string[]>] [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]

Get-Process -Id <Int32[]> [-ComputerName <string[]>] [-FileVersionInfo] [-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 リモート処理に依存しません。コンピューターがリモート コマンドを実行するように構成されていない場合でも、Get-Process の ComputerName パラメーターを使用できます。

必須

false

位置

named

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-FileVersionInfo

プロセスで実行されるプログラムのファイル バージョン情報を取得します。

Windows Vista 以降のバージョンの Windows で、自分が所有していないプロセスに対してこのパラメーターを使用するには、Windows PowerShell を開く際に [管理者として実行] を指定する必要があります。

このパラメーターを使用することは、各プロセス オブジェクトの MainModule.FileVersionInfo プロパティを取得することと同等です。このパラメーターを使用すると、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

プロセスによって読み込まれたモジュールを取得します。

Windows Vista 以降のバージョンの Windows で、自分が所有していないプロセスに対してこのパラメーターを使用するには、Windows PowerShell を開く際に [管理者として実行] を指定する必要があります。

このパラメーターは、各プロセス オブジェクトの Modules プロパティを取得することと同等です。このパラメーターを使用すると、Get-Process は、プロセス オブジェクトではなく ProcessModule オブジェクト (System.Diagnostics.ProcessModule) を返します。そのため、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、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.Diagnostics.Process

プロセス オブジェクトを Get-Process に対してパイプ処理できます。

出力

System.Diagnostics.Process, System.Diagnotics.FileVersionInfo, System.Diagnostics.ProcessModule

既定では、Get-Process は System.Diagnostics.Process オブジェクトを返します。FileVersionInfo パラメーターを使用すると、System.Diagnotics.FileVersionInfo オブジェクトを返します。Module パラメーター (FileVersionInfo パラメーターはなし) を使用すると、System.Diagnostics.ProcessModule オブジェクトを返します。

Name、ID、InputObject パラメーターを同じコマンドで使用することはできません。

Get-Process を組み込みエイリアス "ps" および "gps" で参照することもできます。詳細については、「about_Aliases」を参照してください。

また、WMI Win32_Process オブジェクトのプロパティとメソッドを Windows PowerShell で使用することもできます。詳細については、「Get-WmiObject」と「Windows 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 664, 2060" と指定します。






例 3

C:\PS>get-process | where-object {$_.WorkingSet -gt 20000000}

説明
-----------
このコマンドは、ワーキング セットが 20 MB を超えているプロセスをすべて取得します。まず、Get-Process コマンドレットを使用して、動作中のすべてのプロセスを取得します。パイプライン演算子 (|) によって、プロセス オブジェクトが Where-Object コマンドレットに渡され、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="NPM(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 出力の表示に追加する Format-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 プロセスを取得します。






関連項目




目次