Dotazování rozhraní WMI
Jedním z hlavních nástrojů rozhraní WMI (Windows Management Instrumentation) je schopnost dotazovat úložiště rozhraní WMI na informace o třídě a instanci. Můžete například požádat, aby rozhraní WMI vrátilo všechny objekty představující události vypnutí z vašeho desktopového systému. Můžete také načíst data třídy, instance nebo schématu. Následující tabulka uvádí různé typy dotazů, které můžete vytvořit.
Námět | Popis |
---|---|
vyvolání synchronního dotazu | Popisuje, jak během procesu dotazu udržovat propojení s rozhraním WMI. Synchronní dotazy jsou vhodné pro malé dotazy nebo dotazy do místního systému. |
vyvolání asynchronního dotazu | Popisuje, jak nastavit samostatný proces pro příjem dotazů. Asynchronní dotazy jsou složitější a poskytují nižší úroveň zabezpečení, ale obecně zlepšují výkon systému. |
Kromě dotazování úložiště rozhraní WMI můžete také použítWMI Query Language (WQL) ke směrování událostí oznámení do vaší aplikace. Další informace naleznete v tématu Příjem události WMI.
Poznámka
Abyste mohli správně dotazovat rozhraní WMI, musíte mít dobrou znalost jazyka WQL. Dotaz, který je příliš složitý nebo nevhodný, může způsobit, že procesor dotazu vrátí chybu nebo neočekávané výsledky. Komplexní průvodce jazykem WQL najdete v tématu Dotazování pomocí jazyka WQL.
Existuje omezení počtu klíčových slov AND a NEBO, která lze použít v dotazech WQL. Velký počet klíčových slov jazyka WQL použitých v komplexním dotazu může způsobit, že rozhraní WMI vrátí kód chyby WBEM_E_QUOTA_VIOLATION jako hodnotu HRESULT. Omezení klíčových slov jazyka WQL závisí na tom, jak složitý je dotaz.
Při dotazování na hodnoty vlastností pomocí uint64 nebo sint64 datového typu ve skriptovacím jazyce, jako je VBScript, vrátí rozhraní WMI řetězcové hodnoty. Při porovnávání těchto hodnot může dojít k neočekávaným výsledkům, protože porovnávání řetězců vrací jiné výsledky než porovnávání čísel. Například "10000000000" je menší než "9" při porovnávání řetězců a 9 je menší než 1 0000000000 při porovnávání čísel. Abyste se vyhnuli nejasnostem, měli byste použít metodu CDbl v jazyce VBScript, pokud jsou z rozhraní WMI načteny vlastnosti typu uint64 nebo sint6 4.
Poznámka
Další informace naleznete v tématu Manipulace s informacemi o třídách a instancích.