Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Język zapytań WMI (WQL) jest podzbiorem standardowego języka zapytań SQL Amerykańskiego Instytutu Normalizacyjnego (ANSI SQL) z niewielkimi zmianami semantycznymi wspierającymi WMI.
Aby uzyskać pełną listę obsługiwanych słów kluczowych WQL, zobacz WQL (SQL for WMI). Używanie słów kluczowych SQL dla nazw obiektów lub właściwości może ograniczyć analizowanie zapytania. Następujące słowa kluczowe SQL są ograniczone: null, truei FALSE.
Notatka
Istnieją ograniczenia liczby słów kluczowych AND i OR, które mogą być używane w zapytaniach WQL. Duża liczba słów kluczowych WQL używanych w złożonym zapytaniu może spowodować, że usługa WMI zwróci kod błędu WBEM_E_QUOTA_VIOLATION jako wartość HRESULT. Limit słów kluczowych WQL zależy od tego, jak złożone jest zapytanie.
Zapytania mogą używać klauzuli WHERE na potrzeby rozszerzenia i dostosowywania, chociaż nie jest to wymagane. Klauzula WHERE składa się z właściwości lub słowa kluczowego, operatora i stałej. Wszystkie KLAUZULE WHERE muszą określać jeden ze wstępnie zdefiniowanych operatorów, które są zawarte w języku WQL. Aby uzyskać więcej informacji na temat składni, zobacz WHERE Clause. Aby uzyskać więcej informacji na temat prawidłowych operatorów WQL, zobacz Operatory WQL.
Podobnie jak w przypadku innych ciągów zapytań SQL, możesz unikać zapytań.
Notatka
WQL nie obsługuje zapytań ani skojarzeń między przestrzeniami nazw. Nie można wykonywać zapytań dotyczących wszystkich wystąpień określonej klasy znajdującej się we wszystkich przestrzeniach nazw na komputerze docelowym.
Język WQL obsługuje następujące typy zapytań:
Zapytania dotyczące danych
Zapytania dotyczące danych są używane do pobierania wystąpień klas i skojarzeń danych. Są one najczęściej używanym typem zapytania w skryptach i aplikacjach usługi WMI. Aby uzyskać więcej informacji na temat składni zapytań dotyczących danych, zobacz Requesting Class Instance Data. Aby uzyskać więcej informacji na temat skojarzeń, zobacz Deklarowanie klasy skojarzenia.
Notatka
WQL nie obsługuje zapytań dla typów danych w formie tablic.
Poniższy przykład zapytania danych żąda pliku dziennika zdarzeń o nazwie "Aplikacja" ze wszystkich wystąpień Win32_NTLogEvent.
strComputer = "." Set objWMIService = GetObject("winmgmts:\\" _ & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery( _ "SELECT * FROM Win32_NTLogEvent " _ & "WHERE Logfile = 'Application'",,48)Zapytania dotyczące zdarzeń
Użytkownicy używają zapytań dotyczących zdarzeń, aby zarejestrować się w celu otrzymywania powiadomień o zdarzeniach. Dostawcy zdarzeń używają zapytań dotyczących zdarzeń do rejestrowania w celu obsługi co najmniej jednego zdarzenia. Aby uzyskać więcej informacji na temat zapytań dotyczących zdarzeń, zobacz Odbieranie powiadomień o zdarzeniach.
Poniższe przykładowe zapytanie o zdarzenie, wykonane przez tymczasowego odbiorcę zdarzeń, prosi o powiadomienie o utworzeniu nowego wystąpienia klasy pochodzącej z Win32_NTLogEvent.
strComputer = "." Set objWMIService = GetObject("winmgmts:\\" _ & strComputer & "\root\CIMV2") Set objEvents = objWMIService.ExecNotificationQuery _ ("SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE " & _ "TargetInstance ISA 'Win32_Service'" & _ " AND TargetInstance._Class = 'win32_TerminalService'") i = TRUE Do While i = TRUE Set strReceivedEvent = objEvents.NextEvent 'report an event Wscript.Echo "An event has occurred." LoopZapytania schematu
Zapytania schematu służą do pobierania definicji klas (a nie wystąpień klas) i skojarzeń schematu. Dostawcy klas używają zapytań schematu do określania klas, które obsługują podczas rejestrowania. Aby uzyskać więcej informacji na temat zapytań schematu, zobacz Pobieranie definicji klas.
Poniższe przykładowe zapytanie schematu przedstawia specjalną składnię.
SELECT * FROM meta_class WHERE __this ISA "Win32_BaseService"
Tematy pokrewne