Office Version per WMI bestimmen und in GPO verwenden

Bei uns im Unternehmen lege ich eine Vielzahl von Officeeinstellungen per Gruppenrichtlinien fest. Microsoft bietet hierzu entsprechende Vorlagen für Office an (2013, 2010), was die Sache ungemein vereinfacht.

Weil ich keine Zeit hatte (und, jaja, keine Lust) habe ich für alle bei uns eingesetzten Office Versionen die Einstellungen in ein gemeinsames Gruppenrichtlinien Objekt gepackt. Dies wiederum hatte zur Folge, dass es in der Ereignisanzeige natürlich immer wieder Warnings und Errors gab, weil natürlich für eine nicht vorhandene Office Version versucht wurde die Einstellungen zu setzen. Heute also habe ich mir die Mühe gemacht, die Einstellungen nach Office Versionen zu trennen und in separate Gruppenrichtlinien Objekte zu packen. Ich hab jetzt also für jede Office Version ein Gruppenrichtlinien Objekte.

Jetzt brauchts natürlich noch eine FIlterung, damit die GPO’s nur zur Anwendung kommen, wenn die entsprechende Office Version auch installiert ist. Hierzu bietet Microsoft die Möglichkeit der Anwendung von WMI Filterung auf GPO’s.

Nun wird im Internet in allen gängigen Beispielen die Filterung über die WMI Class Win32_Product vorgeschlagen. Funktioniert! Blöd nur, dass die Filterung auf meinem PC über eineinhalb Minuten dauert (bei frisch gebootetem PC):

Zu allem Überfluss haben wir noch eine CPU last von ~40% während der Abfrage. Also habe ich mich auf die Suche nach einer anderen Möglichkeit gemacht, die Office Version zu prüfen. Mit etwas überlegen bin ich auf den Trichter gekommen auf Pfade bzw. Dateien zu Prüfen und gleichzeitig noch die Version zu prüfen. Gefunden habe ich die WMI Class Win32_DataFile, welche ich auf diese Weise prüfe:

Und der Clou dabei ist, dass diese Abfrage statt Sekunden nur Millisekunden für die Ausführung benötigt:

62 Millisekunden, statt 10 Sekunden! Das ist schon eine Hausnummer. Warum freut mich das Ganze jetzt so? Das Gruppenrichtlinien Objekt für die Office Einstellungen werden bei der Anmeldung der Benutzer ausgeführt und damit auch der Filter. D.h., die Anmeldung wurde durch Verwendung des Filters mit Anwendung der Class Win32_Product unnötig verlängert und ich hörte schon meine Nutzer mecker, dass die Anmeldung so lange dauert!

Bis jetzt haben wir nur die PowerShell Befehle für den Filter gefunden, jetzt müssen wir den PS Befehl noch in einen GPO kompatiblen WMI Filter umsetzen:

Um Unterschiede in den Installationspfaden von 32 Bit und 64 Bit Betriebssystemen abzufangen habe ich noch eine OR Abfrage für einen anderen Pfad mit eingebaut.

Für Office 2010 sieht der WMI Filter dann so aus:

 

Veröffentlicht in GPO, Powershell Getagged mit: , , , ,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*