WQLSet

変更監視モジュールは、Deep Security Agent上のディレクトリレジストリ値レジストリキーサービスプロセスインストール済みのソフトウェアポートグループユーザファイル、およびWQLクエリ文に対する想定外の変更を検索します。変更監視を有効にして設定するには、「変更監視の設定」を参照してください。

WQLSetエレメントは、Windows Management Instrumentation WQLクエリ文の結果セットについて記述します。WQLは、さまざまなオブジェクトクラスに対してSQLに似たクエリを実行し、その結果について、各行にオブジェクト、各列にオブジェクトの特定属性値を格納した表の形式で返します。

WMIクエリの多くは、時間とコンピュータリソースを大量に消費します。完了まで数分かかり何千行もの結果を返すクエリを、不注意で実行してしまうことがあります。WQLSetで使用する前に、すべてのクエリをPowerShellやWMI Explorerなどのプログラムを使用してテストすることを強く推奨します。

属性 説明 必須 初期設定値 設定できる値
namespace WMIクエリの名前空間を設定します。 はい なし 有効なWMI名前空間を表す文字列値。

「root \ cimv2」名前空間は、Windows OSオブジェクトのクエリに最もよく使用される名前空間ですが、「root \ directory \ LDAP」や「root \ Microsoft \ SqlServer \ ComputerManagement」などのその他の名前空間も使用できます。指定したコンピュータで使用可能なWMI名前空間を列挙する「GetNamespaces.vbs」という短いスクリプトについては、ここを参照してください。
wql WQLクエリ文字列。 はい なし 有効なWQL文字列。

クエリには、返されるオブジェクトごとに __Path属性が含まれている必要があります。エージェントは結果を格納およびレポートする際に __Path属性をエンティティキーとして使用するため、返される各WMIオブジェクトには __パスが含まれている必要があります。「SELECT \* FROM ...」などのクエリ文字列を使用する場合は、 __Path属性を使用できますが、「SELECT Name FROM ...」などの などの選択クエリを使用する場合は、明示的に __パスを含める必要があります。 「SELECT __Path、Name FROM ...」としてクエリを実行します。
onChange 対象のファイルをリアルタイムで監視する必要があるかどうかを示します。 いいえ false true、false
provider オプションで、使用する別のWMI名前空間プロバイダを指定します。 いいえ なし RsopLoggingModeProvider

現在のところ、これはグループポリシークエリでのみ必要とされ、「RsopLoggingModeProvider」はサポートされている唯一の値です。コンピュータ上にあるポリシーデータのスナップショットを作成するときにRsopLoggingModeProviderを使用することが推奨されているため、グループポリシークエリは特別なクエリです。ポリシーデータのスナップショットを作成すると、 クエリは、ポリシーの更新中にシステムが上書きまたは削除する前に、一貫性のあるデータセットに対して実行できます。スナップショットの作成は、実際には新しいVMI名前空間を作成することです。そのため、WQLSetでproviderに「RsopLoggingModeProvider」を使用する場合、名前空間の属性には、作成した名前空間に付加する接尾辞を指定します。たとえば、RsopLoggingModeProviderによって作成される一般的な仮の名前空間は「\\.\Root\Rsop\NS71EF4AA3_FB96_465F_AC1C_DFCF9A3E9010」です。 namespace = "Computer"を指定して、「\\。\ Root \ Rsop \ NS71EF4AA3_FB96_465F_AC1C_DFCF9A3E9010 \ Computer」にクエリを送信します。

一時的な名前空間は1回限りの値なので、エンティティキーに値が表示されているため、エージェントが変更を検出する機能が妨げられます。これを回避するため、RsopLoggingModeProviderが使用された場合、返される__Path値の\Rsop\から次のバックスラッシュまでの部分をAgentが削除します。したがって、エンティティキーには「\\。\ Root \ Rsop \ NS71EF4AA3_FB96_465F_AC1C_DFCF9A3E9010 \ Computer」ではなく「\\。\ Root \ Rsop \ Computer」 のようなプレフィックスが付きます。
timeout 行ごとのタイムアウトをミリ秒単位で指定します。 いいえ 5000 1-60000

WMIクエリは 半同期 モードで実行されます。このモードでは、結果行が1つずつフェッチされ、1つの行をフェッチする際にタイムアウトが発生します。このパラメータが指定されていない場合、タイムアウト値には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

Agentの負荷を減らすため、クエリに「select * ...」を使用する代わりに、監視の必要がある属性のみを明確に含めることをお勧めします。WMIスキーマに属性を追加または削除する変更は、その属性が監視対象のセットの一部でないかぎり、オブジェクトに対する変更であるとレポートされない利点もあります。「select * from Win32_Foobar」を使用すると、Win32_Foobarオブジェクトのクラスに新しい属性を追加するWindowsのパッチが適用された場合、次回の変更の検索で、新しい属性が出現したことによるクラスの各オブジェクトに対する変更がレポートされます。

以下は、望ましいWindowsシステムエンティティを返すWMIクエリの例です。

Windowsにマウントされたストレージデバイスに対するクエリ(*を選択すると、通常、返される属性の80%はnullまたは重複する値になります):

<WQLSet namespace="root\cimv2" wql="SELECT __Path,DeviceID,VolumeName,VolumeSerialNumber,DriveType,FileSystem,Access,MediaType,Size,FreeSpace FROM Win32_LogicalDisk" />

前のクエリに追加して、DriveTypeを指定 (「Removable Disk」であるtype2など) することで、特定タイプのマウント済み論理ストレージデバイスを分離できます(リムーバブル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ストレージデバイスの注意事項: U3 USBデバイスは、type 2の「Removable Disk」デバイスとtype 3の「Compact Disc」デバイスの両方にマウントされます。また、前出のクエリはストレージデバイス専用です。記憶装置ではないUSBデバイスは含まれません。type 1の「No Root Directory」デバイスとしてUSBメモリカードアダプタが表示されることがあります。type 1の「Unknown」デバイスとして、不良またはWindowsと互換性のないUSBストレージデバイスが表示されることがあります。

ドライブが「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:'" />

「key」の意味

keyは、返される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

これらのエレメントに指定できる属性とサブエレメントの「include」と「exclude」の概要は、「変更監視ルールの言語」を参照してください。

WQLSetでは通常、「include」サブエレメントと「exclude」サブエレメントは不要です。WQLはAgentおよびコンピュータのWMI実装の両方によって実行される処理の量を制限するため、監視するオブジェクトの正確なセットを指定するためにWQLを使用することが望ましいです。

任意のincludeまたはexcludeサブエレメントを使用すると、クエリによって返されるオブジェクトのセットを減らすことのみ可能です。追加のオブジェクトを返すようにするためには、WQLを変更する必要があります。includeまたはexcludeエレメントを使用してWQLの結果をさらに制限する必要がある場合には、エンティティキーの値に対して一致させる単純なワイルドカードとして「*」および「?」の文字を使用できます。