Windowsタスクマネージャの[プロセス]タブには、情報を含むいくつかの列が表示されます。そのうちの1つは、プロセスを所有するユーザーのユーザー名です。
コマンドWMICプロセス(管理者が開始したcmd.exeから)を使用すると、同じ種類の情報が得られますが、ユーザー名の列が見つかりません。どのユーザーがWMICでプロセスを開始したかを知るにはどうすればよいですか?
質問する
9243 次
2 に答える
5
所有者は、win32_processクラスインスタンスでGetOwnerメソッドを使用して取得できます。そのためにPowerShellを使用することをお勧めします。これは非常に簡単です。
Get-WmiObject -Class Win32_Process |
Select-Object Name, @{
Name = 'Owner'
Expression = {
$_.GetOwner().User
}
}
wmicを使用する必要がある場合は、次の結果を組み合わせてハックすることができます。
wmic process get Name
...call GetOwner
例:
@echo off
echo Domain\User,Machine,ProcessName,ProcessID,WorkingSetSize
(for /f "skip=2 tokens=2 delims=, eol= " %%P in ('wmic process get ProcessId /format:csv') do @call :AddOwner %%P) 2> nul
goto :EOF
:AddOwner
SET Process=%1
(for /f "skip=5 tokens=1,2 delims==; " %%O in ('wmic process WHERE ProcessID^=%Process% Call GetOwner') do @call :BuildOwner %%O %%P) > nul
for /f "skip=1 tokens=* eol= " %%L in ('wmic process WHERE ProcessID^=%Process% GET Name^, ProcessID^, WorkingSetSize /format:csv') do @SET INFO=%%L
echo %DOMAIN%\%USER%,%INFO%
goto :EOF
:BuildOwner
SET PARAM=%1
SET VALUE=%~2
IF [%PARAM%]==[Domain] SET DOMAIN=%VALUE%
IF [%PARAM%]==[User] SET USER=%VALUE%
goto :EOF
于 2013-02-02T14:04:01.613 に答える
4
すべてのtaskeng.exeプロセス(個々のタスクのWindowsタスクスケジューラプロセス)の所有者を取得するには、「admin」コマンドプロンプトウィンドウからこれを実行します。
wmic process where "name='taskeng.exe'" call GetOwner
于 2015-02-05T04:14:26.263 に答える