Win32_Process 类

Win32_ProcessWMI 类表示操作系统上的进程。

以下语法从托管对象格式 (MOF) 代码中简化,包括所有继承的属性。

注意

有关Windows中的进程和线程的一般讨论,请参阅“进程和线程”主题。

语法

[Dynamic, Provider("CIMWin32"), SupportsCreate, CreateBy("Create"), SupportsDelete, DeleteBy("DeleteInstance"), UUID("{8502C4DC-5FBB-11D2-AAC1-006008C78BC7}"), DisplayName("Processes"), AMENDMENT]
class Win32_Process : CIM_Process
{
  string   CreationClassName;
  string   Caption;
  string   CommandLine;
  datetime CreationDate;
  string   CSCreationClassName;
  string   CSName;
  string   Description;
  string   ExecutablePath;
  uint16   ExecutionState;
  string   Handle;
  uint32   HandleCount;
  datetime InstallDate;
  uint64   KernelModeTime;
  uint32   MaximumWorkingSetSize;
  uint32   MinimumWorkingSetSize;
  string   Name;
  string   OSCreationClassName;
  string   OSName;
  uint64   OtherOperationCount;
  uint64   OtherTransferCount;
  uint32   PageFaults;
  uint32   PageFileUsage;
  uint32   ParentProcessId;
  uint32   PeakPageFileUsage;
  uint64   PeakVirtualSize;
  uint32   PeakWorkingSetSize;
  uint32   Priority;
  uint64   PrivatePageCount;
  uint32   ProcessId;
  uint32   QuotaNonPagedPoolUsage;
  uint32   QuotaPagedPoolUsage;
  uint32   QuotaPeakNonPagedPoolUsage;
  uint32   QuotaPeakPagedPoolUsage;
  uint64   ReadOperationCount;
  uint64   ReadTransferCount;
  uint32   SessionId;
  string   Status;
  datetime TerminationDate;
  uint32   ThreadCount;
  uint64   UserModeTime;
  uint64   VirtualSize;
  string   WindowsVersion;
  uint64   WorkingSetSize;
  uint64   WriteOperationCount;
  uint64   WriteTransferCount;
};

成员

Win32_Process类包含以下类型的成员:

方法

Win32_Process类具有这些方法。

方法 说明
AttachDebugger 启动进程当前已注册的调试器。
创建 创建新的过程。
GetAvailableVirtualSize 检索进程可用的可用虚拟地址空间的当前大小(以字节为单位)。
Windows Server 2012、Windows 8、Windows 7、Windows Server 2008 和 Windows Vista:在 Windows 8.1 和 Windows Server 2012 R2 之前不支持此方法。
GetOwner 检索运行进程的用户名和域名。
GetOwnerSid 检索进程的所有者 (SID) 的安全标识符。
SetPriority 更改进程的执行优先级。
Terminate 终止进程及其所有线程。

 

属性

Win32_Process类具有这些属性。

Caption

数据类型: 字符串

访问类型:只读

限定符: MaxLen (64) , DisplayName (“Caption”)

对象的简短说明 - 一行字符串。

此属性继承自 CIM_ManagedSystemElement

CommandLine

数据类型: 字符串

访问类型:只读

限定符:DisplayName (“命令行以"开始"菜单进程”)

用于启动特定进程的命令行(如果适用)。

CreationClassName

数据类型: 字符串

访问类型:只读

限定符: CIM_KeyMaxLen (256) 、 DisplayName (“类名”)

在创建实例时使用的类或子类的名称。 与类的其他键属性一起使用时,此属性允许唯一标识类及其子类的所有实例。

此属性继承自 CIM_Process

CreationDate

数据类型: datetime

访问类型:只读

限定符: 固定DisplayName (“CreationDate”)

进程开始执行的日期。

此属性继承自 CIM_Process

CSCreationClassName

数据类型: 字符串

访问类型:只读

限定符: 传播 (“CIM_OperatingSystemCSCreationClassName“) , CIM_KeyMaxLen (256) , DisplayName (”计算机系统类名称“)

范围计算机系统的创建类名称。

此属性继承自 CIM_Process

CSName

数据类型: 字符串

访问类型:只读

限定符:传播 (“CIM_OperatingSystemCSName“) 、CIM_Key、MaxLen ( 256) 、DisplayName (”计算机系统名称“)

范围计算机系统的名称。

此属性继承自 CIM_Process

说明

数据类型: 字符串

访问类型:只读

限定符: DisplayName (“Description”)

对象的说明。

此属性继承自 CIM_ManagedSystemElement

ExecutablePath

数据类型: 字符串

访问类型:只读

限定符: Privileges (“SeDebugPrivilege”) , MappingStrings (“Win32API|工具帮助结构|MODULEENTRY32|szExePath“) , DisplayName (”可执行文件路径“)

进程的可执行文件的路径。

示例:“C:\Windows\System\Explorer.Exe”

ExecutionState

数据类型: uint16

访问类型:只读

限定符: DisplayName (“执行状态”)

进程的当前操作条件。

此属性继承自 CIM_Process

未知 (0)

未知

其他 (1)

其他

就绪 (2)

运行 (3)

阻止 (4)

已阻止

已暂停的阻止 (5)

挂起的就绪 (6)

终止 (7)

已停止 (8)

增长 (9 个)

Handle

数据类型: 字符串

访问类型:只读

限定符: KeyMaxLen (256) 、 DisplayName (“Handle”)

进程标识符。

此属性继承自 CIM_Process

HandleCount

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|HandleCount“) , DisplayName (”Handle Count“)

进程拥有的打开句柄总数。 HandleCount 是此进程中每个线程当前打开的句柄的总和。 句柄用于检查或修改系统资源。 每个句柄都有一个在内部维护的表中的条目。 条目包含用于标识资源类型的资源和数据的地址。

InstallDate

数据类型: datetime

访问类型:只读

限定符: MappingStrings (“MIF。DMTF|ComponentID|001.5“) , DisplayName (”安装日期“)

安装对象的日期。 可以在未将值写入此属性的情况下安装该对象。

此属性继承自 CIM_ManagedSystemElement

KernelModeTime

数据类型: uint64

访问类型:只读

限定符: 重写 (“KernelModeTime”) , 单位 (“100 nanoseconds”)

内核模式下的时间(以毫秒为单位)。 如果此信息不可用,请使用值 0 (零) 。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

MaximumWorkingSetSize

数据类型: uint32

访问类型:只读

限定符: Privileges (“SeDebugPrivilege”) , MappingStrings (“Win32|WINNT。H|QUOTA_LIMITS|MaximumWorkingSetSize“) , DisplayName (”最大工作集大小“) , 单位 数 (”千字节“)

进程的最大工作集大小。 进程的工作集是物理 RAM 中进程可见的内存页集。 这些页面是驻留页面,可供应用程序使用,而不会触发页面错误。

示例:1413120

MinimumWorkingSetSize

数据类型: uint32

访问类型:只读

限定符: Privileges (“SeDebugPrivilege”) , MappingStrings (“Win32|WINNT。H|QUOTA_LIMITS|MinimumWorkingSetSize“) , DisplayName (”最小工作集大小“) , 单位 (”千字节“)

进程的最小工作集大小。 进程的工作集是物理 RAM 中进程可见的内存页集。 这些页是常驻的,可供应用程序使用,而不会触发页面错误。

示例:20480

名称

数据类型: 字符串

访问类型:只读

限定符: DisplayName (“Name”)

负责进程的可执行文件的名称,等效于任务管理器中的 Image Name 属性。

当子类继承时,可以将属性重写为键属性。 该名称硬编码为应用程序本身,不会因更改文件名而受到影响。 例如,即使重命名Calc.exe,名称Calc.exe仍将显示在任务管理器和检索进程名称的任何 WMI 脚本中。

此属性继承自 CIM_ManagedSystemElement

OSCreationClassName

数据类型: 字符串

访问类型:只读

限定符:传播 (“CIM_OperatingSystemCreationClassName“) 、CIM_Key、MaxLen ( 256) 、DisplayName (”操作系统类名称“)

范围操作系统的创建类名称。

此属性继承自 CIM_Process

OSName

数据类型: 字符串

访问类型:只读

限定符: 传播 (“CIM_OperatingSystemName“) , CIM_KeyMaxLen (256) , DisplayName (”操作系统名称“)

范围操作系统的名称。

此属性继承自 CIM_Process

OtherOperationCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构|SYSTEM_PROCESS_INFORMATION|OtherOperationCount“) , DisplayName (”其他操作计数“)

未执行读取或写入操作的 I/O 操作数。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

OtherTransferCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构|SYSTEM_PROCESS_INFORMATION|OtherTransferCount“) , DisplayName (”其他传输计数“) , 单位 (”字节“)

在未读取或写入操作的操作期间传输的数据量。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

PageFaults

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|PageFaultCount“) , DisplayName (”页错误数“)

进程生成的页错误数。

示例:10

PageFileUsage

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|PagefileUsage“) , DisplayName (”Page File Usage“) , units (”kb“)

进程当前正在使用的页面文件空间量。 此值与TaskMgr.exe中的 VMSize 值一致。

示例:102435

ParentProcessId

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|InheritedFromUniqueProcessId“) , DisplayName (”父进程 ID“)

创建进程的进程的唯一标识符。 将重复使用进程标识符号,因此它们只会标识该进程的生存期。 ParentProcessId 标识的进程可能会终止,因此 ParentProcessId 可能不会引用正在运行的进程。 ParentProcessId 也可能错误地引用重复使用进程标识符的进程。 可以使用 CreationDate 属性来确定在创建此 Win32_Process 实例所表示的进程之后是否创建了指定的父级。

PeakPageFileUsage

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|PeakPagefileUsage“) , DisplayName (”Peak Page File Usage“) , units (”kb“)

进程生存期内使用的最大页文件空间量。

示例:102367

PeakVirtualSize

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|PeakVirtualSize“) , DisplayName (”Peak Virual Address Space Usage“) , Units (”bytes“)

进程一次使用的最大虚拟地址空间。 使用虚拟地址空间不一定意味着对磁盘或主内存页的相应使用。 但是,虚拟空间有限,并且使用过多的过程可能无法加载库。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

PeakWorkingSetSize

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|PeakWorkingSetSize“) , DisplayName (”峰值工作集大小“) , 单位 (”千字节“)

进程的峰值工作集大小。

示例:1413120

Priority

数据类型: uint32

访问类型:只读

限定符: 重写 (“Priority”) , MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|BasePriority“) , DisplayName (”Priority“)

在操作系统中计划进程的优先级。 值越高,进程接收的优先级就越高。 优先级值范围为 0 (零) ,这是优先级最高的 31。

示例:7

PrivatePageCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|PrivatePageCount“) , DisplayName (”Private Page Count“)

分配的当前页数,这些页仅可供此 Win32_Process 实例表示的进程访问。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

ProcessId

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构|PROCESS_INFORMATION|dwProcessId “) , DisplayName (”Process Id“)

用于区分一个进程与另一个进程的数值标识符。 ProcessID 从进程创建时间到进程终止都是有效的。 终止后,同一个数字标识符可以应用于新进程。

这意味着不能单独使用 ProcessID 来监视特定进程。 例如,应用程序可能具有 7 个 ProcessID,然后失败。 启动新进程后,可以将新进程分配到 ProcessID 7。 因此,仅检查指定 ProcessID 的脚本可能会“被愚弄”,认为原始应用程序仍在运行。

QuotaNonPagedPoolUsage

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|QuotaNonPagedPoolUsage“) , DisplayName (”非分页池使用情况配额“)

进程的非分页池使用情况的配额量。

示例:15

QuotaPagedPoolUsage

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|QuotaPagedPoolUsage“) , DisplayName (”分页池使用情况配额“)

进程的分页池使用情况配额量。

示例:22

QuotaPeakNonPagedPoolUsage

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|QuotaPeakNonPagedPoolUsage“) , DisplayName (”峰值非分页池使用配额“)

进程的非分页池使用量的峰值配额量。

示例:31

QuotaPeakPagedPoolUsage

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|QuotaPeakPagedPoolUsage“) , DisplayName (”峰值分页池使用情况配额“)

进程的分页池使用量峰值配额量。

示例:31

ReadOperationCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构|SYSTEM_PROCESS_INFORMATION|ReadOperationCount“) , DisplayName (”读取操作计数“)

执行的读取操作数。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

ReadTransferCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构|SYSTEM_PROCESS_INFORMATION|ReadTransferCount“) , DisplayName (”读取传输计数“) , 单位 (”bytes“)

读取的数据量。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

SessionId

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|SessionId“) , DisplayName (”Session Id“)

操作系统在创建会话时生成的唯一标识符。 会话跨越从登录到从特定系统注销的一段时间。

Status

数据类型: 字符串

访问类型:只读

限定符: MaxLen (10) 、 DisplayName (“Status”)

此属性未实现,并且不会为此类的任何实例填充。 它始终为 NULL

此属性继承自 CIM_ManagedSystemElement

包括以下值:

确定 (“确定”)

错误 (“错误”)

降级 (“已降级”)

未知 (“未知”)

Pred Fail (“Pred Fail”)

启动 (“启动”)

停止 (“停止”)

服务 (“服务”)

压力 (“压力”)

NonRecover (“NonRecover ”)

无联系人 (“无联系人”)

Lost Comm (“Lost Comm”)

TerminationDate

数据类型: datetime

访问类型:只读

限定符: DisplayName (“终止日期”)

进程已停止或终止。 若要获取终止时间,必须保持进程的句柄处于打开状态。 否则,此属性返回 NULL

此属性继承自 CIM_Process

ThreadCount

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|NumberOfThreads“) , DisplayName (”Thread Count“)

进程中的活动线程数。 指令是处理器中执行的基本单元,线程是执行指令的对象。 每个正在运行的进程至少有一个线程。

UserModeTime

数据类型: uint64

访问类型:只读

限定符: 重写 (“UserModeTime”) , 单位 (“100 nanoseconds”)

用户模式下的时间,以 100 纳秒为单位。 如果此信息不可用,请使用值为 0 (0) 。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

VirtualSize

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION|VirtualSize“) , DisplayName (”虚拟地址空间使用情况“) , 单位 (”字节“)

进程正在使用的虚拟地址空间的当前大小,而不是进程实际使用的物理或虚拟内存。 使用虚拟地址空间不一定意味着对磁盘或主内存页的相应使用。 虚拟空间有限,并且使用过多,该过程可能无法加载库。 此值与你在Perfmon.exe中看到的内容一致。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

WindowsVersion

数据类型: 字符串

访问类型:只读

限定符:MappingStrings (“Win32API|进程和线程函数|GetProcessVersion“) , DisplayName (”Windows 版本“)

运行进程的Windows版本。

示例:4.0

WorkingSetSize

数据类型: uint64

访问类型:只读

限定符: DisplayName (“工作集大小”) , 单位 (“字节”)

对于使用基于页面的内存管理的操作系统,进程需要高效执行的内存量(以字节为单位)。 如果系统内存不足 (小于工作集大小) ,则会发生抖动。 如果工作集的大小未知,请使用 NULL 或 0 (零) 。 如果提供了工作集数据,则可以监视信息以了解进程不断变化的内存要求。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

此属性继承自 CIM_Process

WriteOperationCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构|SYSTEM_PROCESS_INFORMATION|WriteOperationCount“) , DisplayName (”写入操作计数“)

执行的写入操作数。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

WriteTransferCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构|SYSTEM_PROCESS_INFORMATION|WriteTransferCount“) , DisplayName (”写入传输计数“) , 单位 (”bytes“)

写入的数据量。

有关在脚本中使用 uint64 值的详细信息,请参阅 WMI 中的脚本

注解

Win32_Process类派生自CIM_Process。 使用此类的调用过程必须在注册表所在的计算机上具有 SE_RESTORE_NAME 特权。 有关详细信息,请参阅 执行特权操作

概述

进程几乎使计算机上发生的所有操作都不足。 事实上,大多数计算机问题的根本原因可追溯到进程:例如,在计算机 (上运行过多的进程,并争用有限的一组资源) ,或者单个进程可能使用的资源超过其共享资源。 这些因素使对计算机上运行的进程保持密切监视非常重要。 进程监视是进程管理的主要活动,可用于确定计算机实际执行的操作、计算机运行的应用程序以及这些应用程序受计算环境中更改的影响。

监视进程

定期监视过程有助于确保计算机以最高效率运行,并按预期执行其指定任务。 例如,通过监视进程,可以立即收到已停止响应的任何应用程序的通知,然后采取措施结束该过程。 此外,进程监视使你能够在问题发生之前识别问题。 例如,通过反复检查进程使用的内存量,可以识别内存泄漏。 然后,可以在运行错误的应用程序使用所有可用内存并使计算机停止之前停止该过程。

进程监视还有助于最大程度地减少因计划内中断而导致的升级和维护中断。 例如,通过检查客户端计算机上运行的数据库应用程序的状态,可以确定使数据库脱机以升级软件的影响。

监视进程可用性。 度量进程可用的时间百分比。 可用性通常通过使用简单的探测进行监视,该探测报告进程是否仍在运行。 通过跟踪每个探测的结果,可以计算进程的可用性。 例如,一个进程被探测 100 次,并在其中 95 次做出响应,其可用性为 95%。 这种监视通常保留给数据库、邮件程序和其他预期随时运行的应用程序。 它不适用于每天定期启动和停止多次的字处理程序、电子表格或其他应用程序。

可以创建 Win32_ProcessStartup 类的实例来配置进程。

可以使用 Win32_PerfFormattedData_PerfProc_Process 类和 WMI 刷新器对象(例如 SWbemRefresher)监视进程性能。 有关详细信息,请参阅 监视性能数据

示例

在 TechNet 库中列出 WMI 类 PowerShell 代码示例的属性描述Win32_Process类,并输出Excel格式的结果。

在多台服务器上终止正在运行的进程将终止在一台或多台计算机上运行的进程。

示例:调用提供程序方法 主题中,代码使用 C++ 调用 Win32_Process 来创建进程。

可用性是最简单的进程监视形式:使用此方法,只需确保进程正在运行。 监视进程可用性时,通常会检索计算机上运行的进程列表,然后验证特定进程是否仍然处于活动状态。 如果进程处于活动状态,则被视为可用。 如果进程不处于活动状态,则它不可用。 以下 VBScript 示例通过检查计算机上运行的进程列表,并在找不到Database.exe进程时发出通知来监视进程可用性。

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Database.exe'")
If colProcesses.Count = 0 Then
 Wscript.Echo "Database.exe is not running."
Else
 Wscript.Echo "Database.exe is running."
End If

以下 VBScript 示例使用临时事件使用者监视进程创建。

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredProcesses = objWMIService.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent " _
                                                     & "WITHIN 10 WHERE TargetInstance ISA 'Win32_Process'")
i = 0
Do While i = 0
 Set objLatestProcess = colMonitoredProcesses.NextEvent
 Wscript.Echo objLatestProcess.TargetInstance.Name, Now
Loop

以下 VBScript 监视进程性能信息。

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For Each objProcess in colProcessList
 Wscript.Echo "Process: " & objProcess.Name
 Wscript.Echo "Process ID: " & objProcess.ProcessID
 Wscript.Echo "Thread Count: " & objProcess.ThreadCount
 Wscript.Echo "Page File Size: " & objProcess.PageFileUsage
 Wscript.Echo "Page Faults: " & objProcess.PageFaults
 Wscript.Echo "Working Set Size: " & objProcess.WorkingSetSize
Next

以下 VBScript 代码示例演示如何获取本地计算机上的每个进程的所有者。 可以使用此脚本从远程计算机获取数据,例如,若要确定哪些用户正在运行终端服务器的进程,请将远程计算机的名称替换为第一行中的“.”。 还必须是远程计算机上的管理员。

strComputer = "." 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colProcesses = objWMIService.ExecQuery("select * from win32_process" )
For Each objProcess in colProcesses

  If objProcess.GetOwner ( User, Domain ) = 0 Then
    Wscript.Echo "Process " & objProcess.Caption & " belongs to " & Domain & "\" & User
  Else
    Wscript.Echo "Problem " & Rtn & " getting the owner for process " & objProcess.Caption
  End If
Next

以下 VBScript 代码示例演示如何获取与正在运行的进程关联的登录会话。 在脚本启动之前,进程必须运行Notepad.exe。 该示例查找与表示Notepad.exe的Win32_Process关联的Win32_LogonSession实例。 Win32_SessionProcess 指定为关联类。 有关详细信息,请参阅 ASSOCIATORS OF Statement.

On error resume next
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess in colProcesses
  ProcessId = objProcess.ProcessId
  Set colLogonSessions = objWMIService.ExecQuery("Associators of {Win32_Process='" & ProcessId & "'} " _
                                               & "Where Resultclass = Win32_LogonSession Assocclass = Win32_SessionProcess", "WQL", 48)
  If Err <> 0 Then
    WScript.Echo "Error on associators query= " & Err.number & " " & Err.Description
    WScript.Quit
  End If
  For Each LogonSession in colLogonSessions
    Wscript.Echo " Logon id is " & LogonSession.LogonId
  Next
Next

要求

要求
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008
命名空间
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

另请参阅

CIM_Process

操作系统类

WMI 任务:进程