【问题标题】:There is no column for User Name in the 'WMIC process' output“WMIC 进程”输出中没有用户名列
【发布时间】:2013-02-02 08:33:53
【问题描述】:

Windows 任务管理器的“进程”选项卡显示了几列信息,其中之一是拥有该进程的用户的用户名。
使用命令 WMIC 进程(来自管理员启动的 cmd.exe)为我提供了相同类型的信息,但我找不到任何用户名列。如何找出哪个用户使用 WMIC 启动了该进程?

【问题讨论】:

    标签: wmic


    【解决方案1】:

    可以在 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
    

    【讨论】:

    • 谢谢。忘了提到我实际上是在寻找 .bat 或 .vbs 解决方案。我想你的解决方案工作正常,但我没有验证它,因为我不知道关于 PowerShell 的第一件事。但在 Google 搜索 WMI GetOwner 时,我找到了this MSDN page,我找到了我要找的东西。
    【解决方案2】:

    要获取所有 taskeng.exe 进程(单个任务的 Windows 任务计划程序进程)的所有者,请从“管理员”命令提示符窗口运行:

    wmic process where "name='taskeng.exe'" call GetOwner
    

    【讨论】:

    • 这给出了以下结果,因此没用:Method execution successful. Out Parameters: instance of __PARAMETERS { ReturnValue = 2; };
    • @Dominique wmic process 怎么样?
    • 在这种情况下,您不会得到正确的名称,至少对于WmiPrvSE.exe 进程不会:在任务管理器中有LOCAL SERVICENETWORK SERVICESYSTEM,而wmic process仅产生 DOMINIQUEDS,这是我在 PC 上的用户名。
    • @Dominique 您是否在“管理员”命令提示符窗口中运行该命令?
    • 不,我不知道这会有所作为。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 2016-02-07
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多