Get-Process

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

構文

Get-Process
   [[-Name] <String[]>]
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   [[-Name] <String[]>]
   -IncludeUserName
   [<CommonParameters>]
Get-Process
   -Id <Int32[]>
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   -Id <Int32[]>
   -IncludeUserName
   [<CommonParameters>]
Get-Process
   -InputObject <Process[]>
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   -InputObject <Process[]>
   -IncludeUserName
   [<CommonParameters>]

説明

このコマンドレットは Get-Process 、ローカル コンピューターまたはリモート コンピューター上のプロセスを取得します。

パラメーターがない場合、このコマンドレットはローカル コンピューター上のすべてのプロセスを取得します。 また、プロセス名またはプロセス ID (PID) で特定のプロセスを指定したり、パイプラインを介してプロセス オブジェクトをこのコマンドレットに渡したりすることもできます。

既定では、このコマンドレットはプロセスに関する詳細情報を持つプロセス オブジェクトを返し、プロセスを開始および停止できるメソッドをサポートします。 また、コマンドレットの Get-Process パラメーターを使用して、プロセスで実行されるプログラムのファイル バージョン情報を取得し、プロセスが読み込んだモジュールを取得することもできます。

例 1: ローカル コンピューター上のすべてのアクティブなプロセスの一覧を取得する

Get-Process

このコマンドは、ローカル コンピューターで実行されているすべてのアクティブなプロセスの一覧を取得します。 各列の定義については、「 メモ 」セクションを参照してください。

例 2: 1 つ以上のプロセスに関して使用可能なすべてのデータを取得する

Get-Process winword, explorer | Format-List *

このコマンドは、コンピューター上の Winword プロセスと Explorer プロセスに関して利用可能なすべてのデータを取得します。 Name パラメーターを使用してプロセスを指定しますが、省略可能なパラメーター名は省略されます。 パイプライン演算子 (|) は、Winword および Explorer プロセス オブジェクトのすべての使用可能なプロパティ (*) を表示するコマンドレットにデータFormat-Listを渡します。

プロセスをプロセス ID で指定することもできます。 たとえば、Get-Process -Id 664, 2060 です。

例 3: 指定したサイズより大きいワーキング セットを持つすべてのプロセスを取得する

Get-Process | Where-Object {$_.WorkingSet -gt 20000000}

このコマンドは、ワーキング セットが 20 MB を超えているプロセスをすべて取得します。 コマンドレットを Get-Process 使用して、実行中のすべてのプロセスを取得します。 パイプライン演算子 (|) は、プロセス オブジェクトをコマンドレットに Where-Object 渡します。このコマンドレットでは、 WorkingSet プロパティの値が 20,000,000 バイトを超えるオブジェクトのみを選択します。

WorkingSet は、プロセス オブジェクトの多くのプロパティの 1 つです。 すべてのプロパティを表示するには、「.」と入力します Get-Process | Get-Member。 既定では、既定の表示がキロバイト単位やメガバイト単位であっても、サイズに関するプロパティの値はすべてバイト単位で表されます。

例 4: 優先順位に基づいてコンピューター上のプロセスをグループに一覧表示する

$A = Get-Process
$A | Get-Process | Format-Table -View priority

これらのコマンドは、優先順位クラスに基づいて、コンピューター上のプロセスをグループに一覧表示します。 最初のコマンドは、コンピューター上のすべてのプロセスを取得し、変数に $A 格納します。

2 番目のコマンドは、変数に格納されている Process オブジェクトを $A コマンドレットに Get-Process パイプし、次に Format-Table優先度 ビューを使用してプロセスを書式設定するコマンドレットにパイプ処理します。

優先度ビューやその他のビューは、PowerShell ホーム ディレクトリ ($pshome) の PS1XML フォーマット ファイルで定義されます。

例 5: 標準Get-Process出力表示にプロパティを追加する

Get-Process pwsh | Format-Table `
    @{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) {$_.CPU.ToString("N")}}},
    Id, MachineName, ProcessName -AutoSize

NPM(K) PM(K) WS(K) VM(M) CPU(s)   Id MachineName ProcessName
------ ----- ----- ----- ------   -- ----------- -----------
     6 23500 31340   142 1.70   1980 .           pwsh
     6 23500 31348   142 2.75   4016 .           pwsh
    27 54572 54520   576 5.52   4428 .           pwsh

次の使用例は、ローカル コンピューターとリモート コンピューター (S1) からプロセスを取得します。 取得したプロセスは、MachineName プロパティをFormat-Table標準Get-Process出力表示に追加するコマンドにパイプされます。

例 6: プロセスのバージョン情報を取得する

Get-Process pwsh -FileVersionInfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
6.1.2            6.1.2            C:\Program Files\PowerShell\6\pwsh.exe

このコマンドは 、FileVersionInfo パラメーターを使用して、PowerShell プロセスの pwsh.exe メイン モジュールであるファイルのバージョン情報を取得します。

Windows Vista 以降のバージョンの Windows で所有していないプロセスでこのコマンドを実行するには、[ 管理者として実行 ] オプションを使用して PowerShell を開く必要があります。

例 7: 指定されたプロセスで読み込まれたモジュールを取得する

Get-Process SQL* -Module

このコマンドは、 Module パラメーターを使用して、プロセスによって読み込まれたモジュールを取得します。 このコマンドは、で始まる SQL名前を持つプロセスのモジュールを取得します。

所有していないプロセスで Windows Vista 以降のバージョンの Windows でこのコマンドを実行するには、[ 管理者として実行 ] オプションを使用して PowerShell を起動する必要があります。

例 8: プロセスの所有者を検索する

Get-Process pwsh -IncludeUserName

Handles      WS(K)   CPU(s)     Id UserName            ProcessName
-------      -----   ------     -- --------            -----------
    782     132080     2.08   2188 DOMAIN01\user01     pwsh

このコマンドは、プロセスの所有者を見つける方法を示します。 Windows では、 IncludeUserName パラメーターには管理者特権 (管理者として実行) が必要です。 出力により、所有者 Domain01\user01が .

例 9: 自動変数を使用して、現在のセッションをホストしているプロセスを識別する

Get-Process pwsh

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
------    -----      -----     ------      --  -- -----------
    83    96.21     105.95       4.33    1192  10 pwsh
    79    83.81     117.61       2.16   10580  10 pwsh

Get-Process -Id $PID

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
------    -----      -----     ------      --  -- -----------
    83    96.21      77.53       4.39    1192  10 pwsh

これらのコマンドは、自動変数を $PID 使用して、現在の PowerShell セッションをホストしているプロセスを識別する方法を示します。 このメソッドを使用すると、停止または終了する PowerShell プロセスとホスト プロセスを区別できます。

最初のコマンドは、現在のセッションのすべての PowerShell プロセスを取得します。

2 番目のコマンドは、現在のセッションをホストしている PowerShell プロセスを取得します。

例 10: メイン ウィンドウ タイトルを持つすべてのプロセスを取得し、テーブルに表示する

Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize

このコマンドは、メイン ウィンドウ タイトルを持つすべてのプロセスを取得し、プロセス ID とプロセス名の表形式で表示します。

mainWindowTitle プロパティは、返される Process オブジェクトGet-Processの多くの便利なプロパティの 1 つにすぎません。 すべてのプロパティを表示するには、コマンドの結果をGet-ProcessコマンドレットGet-Process | Get-MemberGet-Memberパイプします。

パラメーター

-FileVersionInfo

このコマンドレットは、プロセスで実行されるプログラムのファイル バージョン情報を取得することを示します。

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

リモート コンピューター上のプロセスのファイル バージョン情報を取得するには、コマンドレットを Invoke-Command 使用します。

このパラメーターを使用することは、各プロセス オブジェクトの MainModule.FileVersionInfo プロパティを取得することと同じです。 このパラメーターを使用すると、 Get-Process プロセス オブジェクトではなく、 FileVersionInfo オブジェクト System.Diagnostics.FileVersionInfo が返されます。 そのため、コマンドの出力を、 Stop-Processプロセス オブジェクトを必要とするコマンドレットにパイプすることはできません。

Type:SwitchParameter
Aliases:FV, FVI
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Id

プロセス ID (PID) を使用して、プロセスを 1 つ以上指定します。 複数の ID を指定するには、ID をコンマで区切ります。 プロセスの PID を見つけるには、「.」と入力します Get-Process

Type:Int32[]
Aliases:PID
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-IncludeUserName

Process オブジェクトの UserName 値がコマンドの結果と共に返されることを示します。

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

1 つまたは複数のプロセス オブジェクトを指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。

Type:Process[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Module

このコマンドレットは、プロセスによって読み込まれたモジュールを取得することを示します。

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

リモート コンピューター上のプロセスによって読み込まれたモジュールを取得するには、コマンドレットを Invoke-Command 使用します。

このパラメーターは、各プロセス オブジェクトの Modules プロパティを取得することと同じです。 このパラメーターを使用すると、このコマンドレットはプロセス オブジェクトではなく 、ProcessModule オブジェクト System.Diagnostics.ProcessModule を返します。 そのため、コマンドの出力を、 Stop-Processプロセス オブジェクトを必要とするコマンドレットにパイプすることはできません。

同じコマンドで Module パラメーターと FileVersionInfo パラメーターの両方を使用すると、このコマンドレットは FileVersionInfo オブジェクトを返し、すべてのモジュールのファイル バージョンに関する情報を取得します。

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Name

プロセス名を使用してプロセスを 1 つ以上指定します。 複数のプロセス名をコンマで区切って指定することも、ワイルドカード文字を使用することもできます。 パラメーター名 (Name) は省略可能です。

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:True

入力

Process

プロセス オブジェクトをこのコマンドレットにパイプできます。

出力

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

既定では、このコマンドレットは System.Diagnostics.Process オブジェクトを 返します。 FileVersionInfo パラメーターを使用すると、System.Diagnostics.FileVersionInfo オブジェクトが返されます。 FileVersionInfo パラメーターを指定せずに Module パラメーターを使用すると、System.Diagnostics.ProcessModule オブジェクトが返されます。

メモ

  • 組み込みのエイリアスでこのコマンドレットを psgps参照することもできます。 詳細については、「 about_Aliases」を参照してください。
  • 64 ビット バージョンの Windows を実行しているコンピューターでは、64 ビット バージョンの PowerShell は 64 ビット プロセス モジュールのみを取得し、PowerShell の 32 ビット バージョンでは 32 ビット のプロセス モジュールのみを取得します。
  • PowerShell では、Windows Management Instrumentation (WMI) Win32_Process オブジェクトのプロパティとメソッドを使用できます。 詳細については、WMI SDK を参照してください Get-WmiObject
  • 既定では、次の欄を含む表としてプロセスが表示されます。 プロセス オブジェクトのすべてのプロパティの説明については、「 プロセスプロパティ」を参照してください。
    • ハンドル: プロセスが開いたハンドルの数。
    • NPM(K): プロセスで使用されているページ以外のメモリの量 (KB 単位)。
    • PM(K): プロセスで使用されているページング可能メモリの量 (KB 単位)。
    • WS(K): プロセスのワーキング セットのサイズ (キロバイト単位)。 ワーキング セットは、プロセスが最近参照したメモリのページで構成されます。
    • VM(M): プロセスで使用されている仮想メモリの量 (メガバイト単位)。 仮想メモリには、ディスク上のページング ファイルの記憶域が含まれます。
    • CPU(s): プロセスがすべてのプロセッサで使用したプロセッサ時間 (秒単位)。
    • ID: プロセスのプロセス ID (PID)。
    • ProcessName: プロセスの名前。 プロセスに関連する概念の説明については、ヘルプとサポート センターにある用語集と、タスク マネージャーのヘルプを参照してください。
  • StartTimePriority など、使用可能なFormat-Tableプロセスの組み込みの代替ビューを使用したり、独自のビューを設計することもできます。