2016年11月27日

【PowerShell】実行中のプロセスを取得する



ローカルPCまたはリモートPCの実行中のプロセスを取得するには、Get-Processを使います。

構文
Get-Process -Name [プロセス名]

Get-Process -Id [プロセスID]


まず、単純にローカルPCの実行中のプロセス一覧を表示させるには下記のようにします。
PS C:\> Get-Process

結果はこのようになります。



次に名前を指定してプロセス一覧を表示させます。
たとえば、exで始まるプロセス一覧を表示させるには以下のようにします。
PS C:\> Get-Process -Name ex*

結果はこのようになります。



次にプロセスIDを指定して表示させます。
上で表示させたExcelのIDを指定してみたいと思います。
PS C:\> Get-Process -Id 10048

結果はこのようになります。



次に実行ファイルのバージョンを表示させるには下記のようにします。
PS C:\> Get-Process -Name excel -FileVersionInfo

結果はこのようになります。



次に、プロセスの詳細情報を表示させるには下記のようにします。
PS C:\> Get-Process -Name excel | Format-List *

結果はこのようになります。
Name                       : EXCEL
Id                         : 10048
PriorityClass              : Normal
FileVersion                : 15.0.4875.1000
HandleCount                : 799
WorkingSet                 : 66961408
PagedMemorySize            : 27009024
PrivateMemorySize          : 27009024
VirtualMemorySize          : 535175168
TotalProcessorTime         : 00:00:02.5000000
SI                         : 15
Handles                    : 799
VM                         : 535175168
WS                         : 66961408
PM                         : 27009024
NPM                        : 48592
Path                       : C:\Program Files (x86)\Microsoft Office\Office15\EXCEL.EXE
Company                    : Microsoft Corporation
CPU                        : 2.5
ProductVersion             : 15.0.4875.1000
Description                : Microsoft Excel
Product                    : Microsoft Office 2013
__NounName                 : Process
BasePriority               : 8
ExitCode                   : 
HasExited                  : False
ExitTime                   : 
Handle                     : 2788
SafeHandle                 : Microsoft.Win32.SafeHandles.SafeProcessHandle
MachineName                : .
MainWindowHandle           : 132852
MainWindowTitle            : Book1 - Excel
MainModule                 : System.Diagnostics.ProcessModule (EXCEL.EXE)
MaxWorkingSet              : 1413120
MinWorkingSet              : 204800
Modules                    : {System.Diagnostics.ProcessModule (EXCEL.EXE), System.Diagnostics.ProcessModule (ntdll.dll), System.Diagnostics.ProcessModule (wow64.dll), System.Diagnostics.ProcessModule (wow64win.dll)...}
NonpagedSystemMemorySize   : 48592
NonpagedSystemMemorySize64 : 48592
PagedMemorySize64          : 27009024
PagedSystemMemorySize      : 938696
PagedSystemMemorySize64    : 938696
PeakPagedMemorySize        : 115884032
PeakPagedMemorySize64      : 115884032
PeakWorkingSet             : 141869056
PeakWorkingSet64           : 141869056
PeakVirtualMemorySize      : 684355584
PeakVirtualMemorySize64    : 684355584
PriorityBoostEnabled       : True
PrivateMemorySize64        : 27009024
PrivilegedProcessorTime    : 00:00:01.0156250
ProcessName                : EXCEL
ProcessorAffinity          : 255
Responding                 : True
SessionId                  : 15
StartInfo                  : System.Diagnostics.ProcessStartInfo
StartTime                  : 2016/11/26 17:44:43
SynchronizingObject        : 
Threads                    : {6328, 6912, 12548, 9032...}
UserProcessorTime          : 00:00:01.4843750
VirtualMemorySize64        : 535175168
EnableRaisingEvents        : False
StandardInput              : 
StandardOutput             : 
StandardError              : 
WorkingSet64               : 66961408
Site                       : 
Container                  : 



最後にそのプロセスによりロードされているモジュールを表示させるには下記のようにします。
PS C:\> Get-Process -Name excel -Module

結果はこのようになります。




<関連記事>
【PowerShell】プロセスの停止を待つ
【PowerShell】プロセスをデバッグする
【PowerShell】プロセスを開始する
【PowerShell】実行中のプロセスを停止する
【PowerShell】サービスを開始する


スポンサーリンク