目次

WQLSet

変更監視モジュールは、ディレクトリレジストリ値レジストリ キーサービスプロセスインストールされたソフトウェアポートグループユーザーファイル、およびエージェントの 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 ...」などのより選択的なクエリを使用する場合は、クエリを次のように記述して明示的に__Pathを含める必要があります "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を指定できます。たとえば、タイプ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 クラスの詳細については、Microsoftのドキュメント を参照してください。

USBストレージデバイスについて

U3 USBデバイスは、タイプ2のリムーバブルディスクデバイスとタイプ3のコンパクトディスクデバイスの両方をマウントします。また、上記のクエリはストレージデバイスのみを対象としています。 USBストレージ以外のデバイスは含まれません。 USBメモリカードアダプタは、タイプ1のルートディレクトリなしデバイスとして表示されることがあります。互換性のないUSBストレージデバイスまたはWindowsとの互換性がないUSBストレージデバイスは、タイプ1の不明なデバイスとして表示されることがあります。

DriveがF:である既知のすべてのシステムディレクトリをクエリし、関連する属性を検索します。

<WQLSet namespace="root\cimv2" wql="SELECT __Path,CreationDate,LastAccessed,LastModified,Drive,Path,FileName,Caption,FileType,Readable,Writeable FROM Win32_Directory WHERE Drive='F:'" />

Driveが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を使用することをお勧めします。

includeまたはexcludeサブ要素を使用すると、クエリによって返されるオブジェクトのセットが削減されるだけです。追加のオブジェクトを返すには、WQLを変更する必要があります。 include要素またはexclude要素を使用してWQLの結果をさらに制限する必要がある場合は、 * および ? 文字を単純なワイルドカードとして使用して、エンティティキーの値と照合できます。