檢視次數:
注意
注意
完整性監控模組會掃描 目錄登錄值登錄鍵服務進程已安裝的軟體端口群組使用者檔案 以及代理上的 WQL 查詢語句的意外變更。要啟用和配置完整性監控,請參閱 設置完整性監控
WQLSet 元素描述來自 Windows Management Instrumentation WQL 查詢語句的結果集。WQL 允許對許多不同的物件類別進行類似 SQL 的查詢,結果形成一個行的表格,每行代表一個物件,每列代表該物件特定屬性的值。
注意
注意
許多 WMI 查詢會消耗大量時間和電腦防護資源。很容易無意中發出需要幾分鐘才能完成並返回數千行的查詢。強烈建議在 WQLSet 中使用查詢之前,先使用像 Powershell 或 WMI Explorer 這樣的程式進行測試。
屬性
說明
必要
預設值
允許值
命名空間
設置 WMI 查詢的命名空間。
不適用
表示有效 WMI 命名空間的字串值。"root\cimv2" 命名空間是查詢 Windows 作業系統物件時最常用的,但也可以使用其他命名空間,如 "root\directory\LDAP" 和 "root\Microsoft\SqlServer\ComputerManagement"。請參閱 此處 以獲取名為 GetNamespaces.vbs 的小腳本,該腳本會列舉給定電腦上可用的 WMI 命名空間。
wql
WQL 查詢字串。
不適用
一個有效的 WQL 字串。查詢必須包含每個返回對象的 __Path 屬性;代理在存儲和報告結果時使用 __Path 屬性作為實體鍵,因此每個返回的 WMI 對象必須包含 __Path。如果使用像 "SELECT \* FROM ..." 這樣的查詢字串,__Path 屬性將可用,但如果使用更具選擇性的查詢,如 "SELECT Name FROM ...",您必須通過將查詢寫為 "SELECT __Path,Name FROM ..." 來明確包含 __Path。
onChange
是否應即時監控返回的檔案。
false
true, false
提供者
(可選)指定要使用的替代 WMI 命名空間提供者。
none
目前這僅對群組原則查詢需要/支援,且 "RsopLoggingModeProvider" 是唯一支援的值。群組原則查詢是特殊的,因為建議使用 RsopLoggingModeProvider 來建立電腦上現有原則資料的快照。如果您建立了原則資料的快照,查詢可以在系統在刷新原則期間覆蓋或刪除資料之前,對一致的資料集進行。建立快照實際上會創建一個新的 WMI 命名空間,因此在WQLSet 中使用provider="RsopLoggingModeProvider"時,命名空間屬性應指定要添加到創建的命名空間的後綴。例如,RsopLoggingModeProvider 創建的典型臨時命名空間將是"\.\Root\Rsop\NS71EF4AA3_FB96_465F_AC1C_DFCF9A3E9010"。指定namespace="Computer"以查詢"\.\Root\Rsop\NS71EF4AA3_FB96_465F_AC1C_DFCF9A3E9010\Computer"。由於臨時命名空間是一個一次性值,它會妨礙代理檢測變更的能力,因為該值出現在實體鍵中。為了避免這種情況,當使用 RsopLoggingModeProvider 時,代理將移除返回的 __Path 值中 \Rsop 之後到下一個反斜杠之間的部分。因此,實體鍵將具有類似 "\.\Root\Rsop\Computer" 的前綴,而不是 "\.\Root\Rsop\NS71EF4AA3_FB96_465F_AC1C_DFCF9A3E9010\Computer"
超時
指定每行的超時時間(毫秒)。
5000
1-60000 WMI 查詢在 半同步 模式下執行,結果行一次提取一行,並且提取單行有超時。如果未指定此參數,則使用 5000(5 秒)作為超時值。

實體集屬性

每個由 WQL 查詢返回的「行」都被視為完整性監控目的的單一實體,返回的列代表實體的屬性。由於 WMI/WQL 是一個開放式規範,沒有可用或支援屬性的固定列表。查詢和被查詢的 WMI 物件的架構將決定被監控的屬性。
例如,WQLSet:
<WQLSet namespace="Computer" wql="select * from RSOP_SecuritySettings where precedence=1" provider="RsopLoggingModeProvider" />
將返回以下屬性:
ErrorCode, GPOID, KeyName, SOMID, Setting, Status, id, precedence
而查詢網路適配器的 WQLSet 如下:
<WQLSet namespace="root\cimv2" wql="select * from Win32_NetworkAdapter where AdapterTypeId = 0" />
將返回以下屬性:
AdapterType, AdapterTypeId, Availability, Caption, ConfigManagerErrorCode, ConfigManagerUserConfig, CreationClassName Description, DeviceID, Index, Installed, MACAddress, Manufacturer, MaxNumberControlled, Name, PNPDeviceID, PowerManagementSupported, ProductName, ServiceName, SystemCreationClassName, SystemName, TimeOfLastReset
為了減少代理的負載,建議在查詢中明確包含需要監控的屬性,而不是使用 "select * ..."。這樣做的另一個好處是,對 WMI 架構進行的屬性添加或刪除更改,除非這些屬性是監控集的一部分,否則不會被報告為對物件的更改。使用 "select * from Win32_Foobar" 時,如果 Windows 的補丁為 Win32_Foobar 物件類別添加了一個新屬性,則下一次完整性掃瞄會報告該類別的每個物件都發生了變更,因為出現了一個新屬性。
以下是一些返回理想 Windows 系統實體的 WMI 查詢範例:
查詢 Windows 已掛載的儲存裝置:(選擇 * 通常會導致 80% 返回的屬性為空或重複值)
<WQLSet namespace="root\cimv2" wql="SELECT __Path,DeviceID,VolumeName,VolumeSerialNumber,DriveType,FileSystem,Access,MediaType,Size,FreeSpace FROM Win32_LogicalDisk" />
為了進一步探討前面的查詢,可以指定 DriveType 來隔離僅某些類型的已掛載邏輯儲存裝置,例如類型 2 的「可移動磁碟」(如可移動的 USB 儲存裝置)
<WQLSet namespace="root\cimv2" wql="SELECT __Path,DeviceID,VolumeName,VolumeSerialNumber,DriveType,FileSystem,Access,MediaType,Size,FreeSpace FROM Win32_LogicalDisk WHERE DriveType=2" />
(有關 Win32_LogicalDisk 類別的詳細資訊,請參閱 此處)
USB Storage Device notes: U3 USB 裝置將會掛載類型 2「可移除磁碟」裝置和類型 3「光碟」裝置。此外,上述查詢僅適用於儲存裝置。USB 非儲存裝置將不會被包含在內。USB 記憶卡轉接器可能會顯示為類型 1「無根目錄」裝置。損壞或與 Windows 不相容的 USB 儲存裝置可能會顯示為類型 1「未知」裝置。
查詢所有已知的系統目錄,其中驅動器為 "F:" 的相關屬性:
<WQLSet namespace="root\cimv2" wql="SELECT __Path,CreationDate,LastAccessed,LastModified,Drive,Path,FileName,Caption,FileType,Readable,Writeable FROM Win32_Directory WHERE Drive='F:'" />
查詢所有已知系統檔案,其中磁碟機為 "F:" 的相關屬性:
<WQLSet namespace="root\cimv2" wql="SELECT __Path,CreationDate,LastAccessed,LastModified,Drive,Path,FileName,Name,FileType,Readable,Writeable FROM CIM_DataFile WHERE Drive='F:'" />

金鑰的意義

該金鑰是返回的 WMI 物件的 "__Path" 屬性,通常的形式為:
SystemName\Namespace:WmiObjectClass.KeyAttribute=Value[,KeyAttribute=Value...]
一些範例:
\TEST-DESK\root\cimv2:Win32_QuickFixEngineering.HotFixID="KB958215-IE7",ServicePackInEffect="SP0"
\TEST-DESK\ROOT\Rsop\NSF49B36AD_10A3_4F20_9541_B4C471907CE7\Computer:RSOP_RegistryValue.
Path="MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\LegalNoticeText",precedence=1
\TEST-DESK\root\cimv2:BRCM_NetworkAdapter.DeviceID="8"

包括 排除

請參閱 完整性監控規則語言 以獲取有關 "include" 和 "exclude" 的允許屬性和子元素的一般描述。
對於 WQLSet,通常不需要 "include" 和 "exclude" 子元素。最好使用 WQL 來指定要監控的確切對象集,因為這樣可以減少代理和電腦防護的 WMI 實現所需的工作量。
任何包含或排除子元素的使用只能減少查詢返回的對象集;必須更改 WQL 才能返回其他對象。如果需要使用包含或排除元素進一步限制 WQL 結果,可以使用 "*" 和 "?" 字符作為簡單的萬用字元來匹配實體鍵的值。