WMI-Abfrage eines Systemdienstes

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!