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出力も簡単にできます。 Get-Process -IncludeUserName | ConvertTo-Csv | Out-File -Encoding default $HOME\Desktop\proc.csv 以上、PowerShellのGet-Processコマンドレットを使って、プロセスを実行しているユーザー名を取得する方法でした。 |