Häufig werden WMI-Abfragen benötigt, wenn z. B. Gruppenrichtlinien mit erweiterten Features genutzt werden sollen.
Ein Beispiel: wir wollen einen Task auf ein System ausrollen per GPO, aber nur dann, wenn ein bestimmter Windows-Dienst vorhanden ist.
Wie geht’s?
- Abfrage „ist der Server ein DNS-Server“:
SELECT name FROM Win32_Service WHERE caption LIKE ‚DNS-Server‘
oder
SELECT name FROM Win32_ServerFeature WHERE Id = 13
- Abfrage DHCP-Server:
SELECT name FROM Win32_Service WHERE caption LIKE ‚DHCP-Server‘
oder
SELECT name FROM Win32_ServerFeature WHERE Id = 12
Als Rückgabewerte dann „TRUE“ oder „FALSE“.
Bei der Abfrage „caption“ ist der Anzeigename des Dienstes relevant, nicht der eigentliche Dienstname. Das könnt ihr hier spicken (Windows-Dienste –> Eigenschaften des Dienstes):
Ein Tipp für die Performance (Danke an einen ungenannten externen Helfer): mit „SELECT * xxx“ dauert die Abfrage unnütz lange, daher „SELECT name xxx“ deutlich performanter.
Viel Erfolg!