このエントリーをはてなブックマークに追加


PowerShellでプロセスを実行しているユーザーを調べる方法

PowerShellで特定のプロセスがどのユーザーで実行されているかを取得し確認する手順を以下に記します。


関連記事

動作確認環境

PS C:\> (Get-WmiObject Win32_OperatingSystem).Caption
Microsoft Windows 10 Pro
PS C:\> ($PSVersionTable).PSVersion.toString()
5.1.17134.228

Get-Process -IncludeUserName

Get-ProcessコマンドレットのIncludeUserNameオプションを使用使用すれば簡単にプロセスの実行ユーザーを取得することができます。

本コマンドはPowerShellを管理者として実行してください。

IncludeUserNameを付与してGet-Processを実行~

以下の通り、UserName列が表示され、プロセスを実行しているユーザーを確認することができます。

PS C:\Windows\system32> Get-Process -IncludeUserName

Handles      WS(K)   CPU(s)     Id UserName               ProcessName
-------      -----   ------     -- --------               -----------
    338      23464     0.47   7096 X121E\sakura           ApplicationFrameHost
    277      15924     1.88   9676 NT AUTHORITY\LOCAL ... audiodg
    430      25988     0.95   1832 X121E\sakura           backgroundTaskHost
    330      24452     0.75  11176 X121E\sakura           backgroundTaskHost
    164       8852     0.09   7852 X121E\sakura           browser_broker
    295      18964     0.39   5472 X121E\sakura           conhost
    590       4888     1.55    480                        csrss
    562       5236     5.83    564                        csrss
    371      14132     1.13   3420 X121E\sakura           ctfmon
    352      11452     0.81   4436 NT AUTHORITY\LOCAL ... dasHost
    146       5924     0.08   3824 NT AUTHORITY\SYSTEM    DbxSvc
    119       6412     0.13   5592 X121E\sakura           dllhost
    222      11556     0.53   8164 X121E\sakura           dllhost
   2194     169968    46.50  10384 X121E\sakura           Dropbox
    172       7600     0.11  10436 X121E\sakura           Dropbox
    311       9992     0.31  10500 X121E\sakura           Dropbox
    216        328     0.25   3092 NT AUTHORITY\SYSTEM    DropboxUpdate
    606      48376    25.22    796 Window Manager\DWM-1   dwm

プロセス名で抽出

以下のようにすれば、プロセス名(以下の例では、Dropbox)で情報を抽出することができます。

PS C:\Windows\system32> Get-Process -IncludeUserName -ProcessName Dropbox

Handles      WS(K)   CPU(s)     Id UserName               ProcessName
-------      -----   ------     -- --------               -----------
   2175     170088    47.39  10384 X121E\sakura           Dropbox
    172       7728     0.11  10436 X121E\sakura           Dropbox
    311       9992     0.31  10500 X121E\sakura           Dropbox

Where-Objectで特定のプロセスを抽出し表示

以下の例では、NT AUTHORITY\SYSTEMで起動されているプロセス一覧を表示しています。

PS C:\Windows\system32> Get-Process -IncludeUserName | Where-Object { $_.UserName -eq "NT AUTHORITY\SYSTEM" }

Handles      WS(K)   CPU(s)     Id UserName               ProcessName
-------      -----   ------     -- --------               -----------
    146       4804     0.08   3824 NT AUTHORITY\SYSTEM    DbxSvc
    218       3116     0.27   3092 NT AUTHORITY\SYSTEM    DropboxUpdate
    188       7080     0.13   1728 NT AUTHORITY\SYSTEM    ibmpmsvc
    209       6744     0.25   1736 NT AUTHORITY\SYSTEM    LPlatSvc
   1310      14320     7.53    692 NT AUTHORITY\SYSTEM    lsass
    586      21368     1.02   3856 NT AUTHORITY\SYSTEM    officeclicktorun
    814      43188    15.36   7336 NT AUTHORITY\SYSTEM    SearchIndexer
    566      12656     0.81   3336 NT AUTHORITY\SYSTEM    spoolsv
    315       8156     1.17    376 NT AUTHORITY\SYSTEM    svchost
     84       3596     0.05    844 NT AUTHORITY\SYSTEM    svchost
   1095      27012     9.06    876 NT AUTHORITY\SYSTEM    svchost

CSV出力も簡単

以下のようにすれば、CSV出力も簡単にできます。
本例では、デスクトップ上ににproc.csvを出力しています。

Get-Process -IncludeUserName | ConvertTo-Csv | Out-File -Encoding default $HOME\Desktop\proc.csv
01.png
 

以上、PowerShellのGet-Processコマンドレットを使って、プロセスを実行しているユーザー名を取得する方法でした。



添付ファイル: file01.png 629件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-11-12 (月) 22:47:39