Win32_Process 類別

Win32_Process WMI 類別 代表作業系統上的進程。

下列語法已經過受管理物件格式 (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 變更進程的執行優先順序。
終止 終止進程及其所有線程。

 

屬性

Win32_Process 類別具有這些屬性。

標題

資料類型: 字串

存取類型:唯讀

限定詞: MaxLen (64), DisplayName (「Caption」)

物件的簡短描述-一行字串。

此屬性繼承自 CIM_ManagedSystemElement

CommandLine

資料類型: 字串

存取類型:唯讀

限定詞: DisplayName (「要啟動程式的命令列」)

如果適用,用來啟動特定進程的命令列。

CreationClassName

資料類型: 字串

存取類型:唯讀

限定詞: CIM_Key MaxLen (256)、 DisplayName (「類別名稱」)

建立實例時所使用的類別或子類別名稱。 搭配 類別的其他索引鍵屬性使用時,這個屬性允許唯一識別類別及其子類別的所有實例。

此屬性繼承自 CIM_Process

CreationDate

資料類型: datetime

存取類型:唯讀

限定詞: Fixed DisplayName (「CreationDate」)

進程開始執行的日期。

此屬性繼承自 CIM_Process

CSCreationClassName

資料類型: 字串

存取類型:唯讀

限定詞: 傳播 (「 CIM_OperatingSystem. CSCreationClassName「), CIM_Key,MaxLen (256), DisplayName (」電腦系統類別名稱「)

建立範圍電腦系統的類別名稱。

此屬性繼承自 CIM_Process

CSName

資料類型: 字串

存取類型:唯讀

限定詞: 傳播 (「 CIM_OperatingSystem. CSName )、 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

資料類型: 字串

存取類型:唯讀

限定詞: Key MaxLen (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」), Units (「100 nanoseconds」)

核心模式中的時間,以毫秒為單位。 如果無法使用這項資訊,請使用值為 0 (零)。

如需在腳本中使用 uint64 值的詳細資訊,請參閱 WMI 中的腳本。

MaximumWorkingSetSize

資料類型: uint32

存取類型:唯讀

限定詞: Privileges (「SeDebugPrivilege」), MappingStrings (「Win32|WINNT。H|QUOTA_LIMITS|MaximumWorkingSetSize)、 DisplayName (「工作集大小上限)、 單位 (」KB「)

進程的工作集大小上限。 進程的工作集是實體 RAM 中進程可見的記憶體頁面集。 這些頁面是常駐頁面,可供應用程式使用,而不會觸發分頁錯誤。

範例:1413120

MinimumWorkingSetSize

數據類型: uint32

存取類型:唯讀

限定符:Privileges (“SeDebugPrivilege”),MappingStrings (“Win32|WINNT。H|QUOTA_LIMITS|MinimumWorkingSetSize)、DisplayName (“最小工作集大小)、單位(”KB“)

進程的工作集大小下限。 進程的工作集是實體 RAM 中進程可見的記憶體頁面集。 這些頁面是常駐頁面,可供應用程式使用,而不會觸發頁面錯誤。

範例:20480

名稱

數據類型: 字串

存取類型:唯讀

限定符: DisplayName (“Name”)

負責進程的可執行檔名稱,相當於Task Manager中的Image Name屬性。

當子類別繼承時,屬性可以覆寫為索引鍵屬性。 名稱會硬式編碼到應用程式本身,而且不會受到變更檔名的影響。 例如,即使您重新命名 Calc.exe,名稱 Calc.exe 仍會顯示在 Task Manager 和擷取進程名稱的任何 WMI 腳本中。

此屬性繼承自 CIM_ManagedSystemElement

OSCreationClassName

數據類型: 字串

存取類型:唯讀

限定符:傳播 (“CIM_OperatingSystem.CreationClassName)、CIM_KeyMaxLen (256)、DisplayName (“操作系統類別名稱”)

建立範圍操作系統的類別名稱。

此屬性繼承自 CIM_Process

OSName

數據類型: 字串

存取類型:唯讀

限定符:傳播 (“CIM_OperatingSystem.Name),CIM_Key,MaxLen (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 (“其他傳輸計數)、單位(”bytes“)

在未讀取或寫入作業的作業期間傳輸的數據量。

如需在腳本中使用 uint64 值的詳細資訊,請參閱 WMI 中的腳本。

PageFaults

數據類型: uint32

存取類型:唯讀

限定符: MappingStrings (“Win32API|進程狀態|SYSTEM_PROCESS_INFORMATION|PageFaultCount“、” DisplayName (“Page Faults 的數目”)

進程產生的頁面錯誤數目。

範例: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 (“父進程標識符”)

建立進程之進程的唯一標識符。 進程標識碼號碼會重複使用,因此只會識別該程式存留期的進程。 ParentProcessId識別的進程可能會終止,因此 ParentProcessId 可能不會參考執行中的進程。 ParentProcessId 也可能不正確地參考重複使用進程標識碼的進程。 您可以使用 CreationDate 屬性來判斷指定的父系是否在建立這個 Win32_Process 實例所代表的進程之後建立。

PeakPageFileUsage

數據類型: uint32

存取類型:唯讀

限定符: MappingStrings (“Win32API|進程狀態|SYSTEM_PROCESS_INFORMATION|PeakPagefileUsage)、 DisplayName (“Peak Page File Usage”), Units (“kbtes”)

進程存留期間所使用的頁面檔空間數量上限。

範例:102367

PeakVirtualSize

數據類型: uint64

存取類型:唯讀

限定符:MappingStrings (“Win32API|進程狀態|SYSTEM_PROCESS_INFORMATION|PeakVirtualSize)、DisplayName(“Peak Virual 位址空間使用量”),單位(“bytes”)

進程一次使用的最大虛擬位址空間。 使用虛擬位址空間不一定意味著對磁碟或主要記憶體頁面的對應使用。 不過,虛擬空間是有限的,而且使用太多程式可能無法載入連結庫。

如需在腳本中使用 uint64 值的詳細資訊,請參閱 WMI 中的腳本。

PeakWorkingSetSize

數據類型: uint32

存取類型:唯讀

限定符:MappingStrings (“Win32API|進程狀態|SYSTEM_PROCESS_INFORMATION|PeakWorkingSetSize)、DisplayName(“尖峰工作集大小”),單位(“KB”)

進程的尖峰工作集大小。

範例: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”)

用來區分一個進程與另一個進程的數值標識碼。 Process識別碼從進程建立時間到處理終止都是有效的。 終止時,相同的數值標識碼可以套用至新的進程。

這表示您無法單獨使用 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 (「Peak Paged Pool Usage Quota」)

進程的分頁集區使用量尖峰配額數量。

範例: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 (「會話識別碼」)

作業系統在建立會話時所產生的唯一識別碼。 會話跨越從登入到從特定系統登出的一段時間。

狀態

資料類型: 字串

存取類型:唯讀

限定詞: MaxLen (10), DisplayName (「Status」)

這個屬性未實作,而且不會針對這個類別的任何實例填入。 一律 為 Null

此屬性繼承自 CIM_ManagedSystemElement

包括下列值:

確定 (「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 (「執行緒計數」)

進程中的作用中線程數目。 指令是處理器中執行的基本單位,而執行緒是執行指令的物件。 每個執行中的進程至少有一個執行緒。

UserModeTime

資料類型: uint64

存取類型:唯讀

限定詞: 覆寫 (「UserModeTime」), Units (「100 nanoseconds」)

以 100 奈秒為單位的使用者模式時間。 如果無法使用這項資訊,請使用值為 0 (零)。

如需在腳本中使用 uint64 值的詳細資訊,請參閱 WMI 中的腳本。

VirtualSize

資料類型: uint64

存取類型:唯讀

限定詞: MappingStrings (「Win32API|進程狀態|SYSTEM_PROCESS_INFORMATION|VirtualSize)、 DisplayName (「虛擬位址空間使用量」), 單位 (「bytes」)

進程正在使用的虛擬位址空間目前大小,而不是進程實際使用的實體或虛擬記憶體。 使用虛擬位址空間不一定意味著對磁片或主要記憶體頁面的對應使用。 虛擬空間是有限的,而且使用太多,程式可能無法載入程式庫。 此值與您在 Perfmon.exe 中看到的內容一致。

如需在腳本中使用 uint64 值的詳細資訊,請參閱 WMI 中的腳本。

WindowsVersion

資料類型: 字串

存取類型:唯讀

限定詞: MappingStrings (「Win32API|進程和執行緒函式|GetProcessVersion)、 DisplayName (「Windows 版本」)

進程執行所在的 Windows 版本。

範例:4.0

WorkingSetSize

資料類型: uint64

存取類型:唯讀

限定詞: DisplayName (「工作集大小」), 單位 (「bytes」)

進程需要有效率地執行的記憶體數量,適用于使用頁面式記憶體管理的作業系統。 如果系統沒有足夠的記憶體(小於工作集大小),就會發生擲碎。 如果不知道工作集的大小,請使用 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 (「寫入傳輸計數」), 單位 (「bytes」)

寫入的資料量。

如需在腳本中使用 uint64 值的詳細資訊,請參閱 WMI 中的腳本。

備註

Win32_Process 類別衍生自 CIM_Process 。 使用這個類別的呼叫進程必須具有 登錄所在電腦上的SE_RESTORE_NAME 許可權。 如需詳細資訊,請參閱 執行特殊許可權作業

概觀

程式幾乎會讓電腦上發生的一切運作都不足。 事實上,大部分電腦問題的根本原因都可以追蹤到進程;例如,太多進程可能會在電腦上執行(並爭用一組有限的資源),或單一進程可能會使用超過其資源分享。 這些因素使得請務必密切關注電腦上執行的進程。 進程監視是進程管理的主要活動,可讓您判斷電腦實際執行什麼、電腦執行的應用程式,以及這些應用程式受到計算環境中變更的影響。

監視進程

定期監視程式可協助您確保計算機以尖峰效率執行,並如預期般執行其指定工作。 例如,藉由監視進程,您可以立即收到已停止回應的任何應用程式通知,然後採取步驟結束該程式。 此外,行程監視可讓您在問題發生之前找出問題。 例如,藉由重複檢查進程所使用的記憶體數量,您可以識別記憶體流失。 接著,您可以停止進程,再讓應用程式使用所有可用的記憶體,並讓計算機停止。

程式監視也有助於將計劃性中斷所造成的中斷降到最低,以進行升級和維護。 例如,藉由檢查用戶端計算機上執行的資料庫應用程式狀態,您可以判斷讓資料庫離線以升級軟體的影響。

監視程式可用性。 測量進程可用的時間百分比。 可用性通常是使用簡單的探查來監視,其會報告進程是否仍在執行中。 藉由追蹤每個探查的結果,您可以計算程式的可用性。 例如,已探查 100 次的進程,並在其中 95 次回應,其可用性為 95%。 這種類型的監視通常會保留給預期隨時執行的資料庫、郵件程式和其他應用程式。 它不適用於一天中經常啟動和停止數次的文字處理程式、電子表格或其他應用程式。

您可以建立Win32_ProcessStartup類別的實例來設定進程。

您可以使用 Win32_PerfFormattedData_PerfProc_Process 類別和 WMI 重新整理器對象來監視進程效能,例如 SWbemRefresher。 如需詳細資訊,請參閱 監視效能數據

範例

在範例 :呼叫 Provider 方法 主題中,程式代碼會使用 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 程式代碼範例示範如何取得與執行中進程相關聯的登入會話。 在腳本啟動之前,進程必須執行 記事本.exe。 此範例會找出與代表 記事本.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
Namespace
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

另請參閱

CIM_Process

作業系統類別

WMI 工作:進程