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

访问类型:只读

限定符: FixedDisplayName (“CreationDate”)

进程开始执行的日期。

此属性继承自 CIM_Process

CSCreationClassName

数据类型: 字符串

访问类型:只读

限定符: 传播 (“CIM_OperatingSystemCSCreationClassName“) , CIM_KeyMaxLen (256) , DisplayName (”Computer System Class Name“)

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

此属性继承自 CIM_Process

CSName

数据类型: 字符串

访问类型:只读

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

范围计算机系统的名称。

此属性继承自 CIM_Process

描述

数据类型: 字符串

访问类型:只读

限定符: DisplayName (“Description”)

对象的说明。

此属性继承自 CIM_ManagedSystemElement

ExecutablePath

数据类型: 字符串

访问类型:只读

限定符: 特权 (“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 纳秒”)

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

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

MaximumWorkingSetSize

数据类型: uint32

访问类型:只读

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

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

示例:1413120

MinimumWorkingSetSize

数据类型: uint32

访问类型:只读

限定符: 特权 (“SeDebugPrivilege”) , MappingStrings (“Win32|WINNT。H|QUOTA_LIMITS|MinimumWorkingSetSize“) , DisplayName (”最小工作集大小“) , 单位 (”kbtes“)

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

示例:20480

名称

数据类型: 字符串

访问类型:只读

限定符: DisplayName (“Name”)

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

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

此属性继承自 CIM_ManagedSystemElement

OSCreationClassName

数据类型: 字符串

访问类型:只读

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

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

此属性继承自 CIM_Process

OSName

数据类型: 字符串

访问类型:只读

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

范围操作系统的名称。

此属性继承自 CIM_Process

OtherOperationCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构 |SYSTEM_PROCESS_INFORMATION |OtherOperationCount“) , DisplayName (”Other Operation Count“)

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

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

OtherTransferCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构 |SYSTEM_PROCESS_INFORMATION |OtherTransferCount“) , DisplayName (”Other transfer Count“) , Units (”bytes“)

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

有关在脚本中使用 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 (”kbtes“)

进程当前使用的页面文件空间量。 此值与 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 (”峰值页面文件使用情况“) , 单位 (”千字节“)

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

示例:102367

PeakVirtualSize

数据类型: uint64

访问类型:只读

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

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

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

PeakWorkingSetSize

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION |PeakWorkingSetSize“) , DisplayName (”Peak Working Set Size“) , Units (”kbtes“)

进程的峰值工作集大小。

示例:1413120

优先级

数据类型: 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 来监视特定进程。 例如,应用程序的 ProcessID 可能为 7,然后失败。 启动新进程时,可以为新进程分配 ProcessID 7。 因此,仅检查指定 ProcessID 的脚本可能会被“愚弄”到认为原始应用程序仍在运行。

QuotaNonPagedPoolUsage

数据类型: uint32

访问类型:只读

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

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

示例:15

QuotaPagedPoolUsage

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION |QuotaPagedPoolUsage“) , DisplayName (”Paged Pool Usage Quota“)

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

示例:22

QuotaPeakNonPagedPoolUsage

数据类型: uint32

访问类型:只读

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

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

示例:31

QuotaPeakPagedPoolUsage

数据类型: uint32

访问类型:只读

限定符: MappingStrings (“Win32API|进程状态|SYSTEM_PROCESS_INFORMATION |QuotaPeakPagedPoolUsage“) , DisplayName (”Peak Paged Pool Usage Quota“)

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

示例:31

ReadOperationCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构 |SYSTEM_PROCESS_INFORMATION |ReadOperationCount“) , DisplayName (”Read Operation Count“)

执行的读取操作数。

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

ReadTransferCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构 |SYSTEM_PROCESS_INFORMATION |ReadTransferCount“) , DisplayName (”Read Transfer Count“) , Units (”bytes“)

读取的数据量。

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

SessionId

数据类型: uint32

访问类型:只读

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

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

Status

数据类型: string

访问类型:只读

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

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

此属性继承自 CIM_ManagedSystemElement

包括以下值:

OK (“OK”)

错误 (“错误”)

已降级 (“已降级”)

未知 (“未知”)

Pred Fail (“Pred Fail”)

正在启动 (“正在启动”)

正在停止 (“停止”)

服务 (“Service”)

压力 (“有压力”)

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 纳秒”)

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

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

VirtualSize

数据类型: uint64

访问类型:只读

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

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

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

WindowsVersion

数据类型: string

访问类型:只读

限定符: 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 (”Write Operation Count“)

执行的写入操作数。

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

WriteTransferCount

数据类型: uint64

访问类型:只读

限定符: MappingStrings (“Win32API|进程和线程结构 |SYSTEM_PROCESS_INFORMATION |WriteTransferCount“) , DisplayName (”Write Transfer Count“) , Units (”bytes“)

写入的数据量。

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

备注

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

概述

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

监视进程

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

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

监视进程可用性。 测量进程可用时间的百分比。 通常使用简单的探测来监视可用性,该探测报告进程是否仍在运行。 通过跟踪每个探测的结果,可以计算进程的可用性。 例如,已探测 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.exeWin32_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 任务:进程