Wir schlagen vor, für
Anwendungen eigene Gruppenrichtlinien zu erstellen. Dabei kann es erforderlich
sein, z.B. für unterschiedliche Office-Versionen (2003, 2007, 2010) auch
unterschiedliche Einstellungen vorzunehmen. Für die Abfrage einer bestimmten
Anwendung gibt es in WMI-Filtern drei Möglichkeiten:
- Die Abfrage der installierten Anwendung mit Win32_Product
- Die Suche nach der ausführbaren Datei mit CIM_DataFile
- Die Verwendung von GPP Umgebung mit Zielgruppenadressierung in Kombination mit einer WMI-Abfrage von Win32_Environment
Abfragen mit Win32_Product
Von der Verwendung von Win32_Product
raten wir ausdrücklich ab. Wir haben bereits gezeigt, wie Sie die Dauer von
WMI-Abfragen mit PowerShell ermitteln können. Die Abbildung 10.21 zeigt die Abfrage von Win32_Product
auf einem Computer mit Windows 8, auf dem lediglich das Betriebssystem
installiert ist, aber keine weiteren Anwendungen.
Abbildung 10.21: Messen der Dauer einer Abfrage von Win32_Product
Die Abfrage von Win32_Product
benötigt auf diesem Computer nur 157 Millisekunden.
Die Abbildung 10.22 zeigt das Ergebnis der gleichen Abfrage auf
einem anderen Computer mit Windows 7, auf dem eine praxisnahe Anzahl von
Anwendungen installiert ist.
Abbildung 10.22: Lange Dauer der Abfrage von Win32_Product
Die Klasse Win32_Product ist nicht für Geschwindigkeit optimiert. Abhängig von der Anzahl der installierten Anwendungen kann eine Abfrage von Win32_Product mehrere Minuten benötigen. Die Auswertung der entsprechenden WMI-Filter verzögert den Start des Computers und die Anmeldung des Benutzers entsprechend.
Ab Windows Vista SP2 und Windows 7 SP1 gibt es eine Sicherheitsfunktion in der Auswertung von WMI-Filtern, die nach 30 Sekunden aktiv wird, wenn die WMI-Abfrage noch kein Ergebnis geliefert hat. Die WMI-Abfrage wird dann abgebrochen und der WMI-Filter als falsch ausgewertet.
Abfragen mit CIM_DataFile
Die Abfrage mit CIM_DataFile
ist gegenüber Win32_Product sehr schnell, allerdings muss der genaue Pfad
der ausführbaren Datei bekannt sein, und Umgebungsvariablen wie z.B. %ProgramFiles%
können nicht verwendet werden.
Abbildung 10.23: WMI-Abfrage für Internet Explorer 10 mit CIM_DataFile
Zielgruppenadressierung und WMI-Filter
Die aus unserer Sicht
eleganteste und flexibelste Möglichkeit zur Abfrage von Anwendungen ist die
Kombination von zwei Techniken: Zunächst verwenden wir die
Zielgruppenadressierung von Group Policy Preferences, um die Anwendung zu
ermitteln. Abhängig vom Ergebnis erstellen wir eine Umgebungsvariable. Diese
Umgebungsvariable verwenden wir in einem WMI-Filter für die jeweilige
Anwendung. Die folgenden Abbildungen zeigen dieses Vorgehen beispielhaft für
Microsoft Office 2010 und Office 2003. Für andere Anwendungen können Sie das
gleiche Vorgehen verwenden, und alle Umgebungsvariablen, die Sie für die
Identifikation von Anwendungen und Anwendungsversionen benötigen, können Sie in
einer einzigen Gruppenrichtlinie zusammenfassen.
Abbildung 10.24: Erstellen einer Umgebungsvariablen für die
Erkennung von Microsoft Office
Die hier als Wert verwendete
Umgebungsvariable %OfficeVersion% existiert noch nicht. Sie wird erst mit Hilfe
der Zielgruppenadressierung auf der Registerkarte »Gemeinsame Optionen«
erstellt. Hier legen wir auch fest, dass die Variable gelöscht werden soll,
wenn die Zielgruppenadressierung kein Ergebnis liefert (Option Element entfernen, wenn es nicht mehr angewendet wird).
Abbildung 10.25: Gemeinsame Optionen
Variablen, die innerhalb der Zielgruppenadressierung verwendet werden, existieren nur temporär. Die Variable %OfficeVersion% im Beispiel kann daher nicht außerhalb der Gruppenrichtlinie verwendet werden.
Abbildung 10.26: Zielgruppenadressierung und Abfrage der
Office-Version
Mehrere
Office-Versionen gleichzeitig auf einem Computer sind i.d.R nicht installiert. Die
Zielgruppenadressierung liefert also trotz der Oder-Verknüpfung
der Elemente ein eindeutiges Ergebnis. Im Beispiel wird Office 2010
Professional oder Office 2003 Professional gefunden. Die Variable %OfficeVersion%
enthält dann entweder 14 oder 11. Wird keine Office-Version gefunden, wird die
Umgebungsvariable %MSOFFICEVERSION% gelöscht.
Statt der MSI-Abfrage können Sie natürlich auch die Dateiübereinstimmung verwenden. Hier haben Sie aber nicht die Möglichkeit, bestimmte Informationen in einer Variablen zu speichern und diese als Inhalt der Umgebungsvariablen festzulegen. Sie müssen dann also für jede Übereinstimmung eine eigene Umgebungsvariable mit passendem Inhalt definieren.Die für MSI-Abfragen erforderlichen Produktcodes können über die Durchsuchen-Schaltfläche ermittelt werden, wenn die Anwendung auf dem aktuellen Computer für den aktuellen Benutzer installiert ist. Alternativ können Sie folgende Befehle verwenden:
- In der Eingabeaufforderung:wmic product where (name like "%office%") get name, identifyingnumber, version
Über den Namen kann das jeweilige Office-Produkt identifiziert und der zugehörige Produktcode (Eigenschaft IdentifyingNumber) in das Eingabefeld übernommen werden.
- In PowerShell:Get-WmiObject –Class Win32_Product –Filter "name like '%office%'" | Format-List –Property Name, IdentifyingNumber, Version
Für die
Umgebungsvariable %MSOFFICEVERSION% erstellen wir einen WMI-Filter, der den Namen
der Variablen und den Inhalt abfragt. Für Office 2010 verwenden wir dabei
folgende Abfrage:
Abbildung 10.27: WMI-Abfrage für die Office-Version 14
Der einzige Nachteil
dieser Vorgehensweise ist, dass der WMI-Filter erst bei der zweiten Gruppenrichtlinien-Verarbeitung
wahr werden kann, da bei der ersten Verarbeitung die Umgebungsvariable erstellt
wird, nachdem WMI-Filter bereits ausgewertet wurden. Auch nach
Produktaktualisierungen sind zwei Gruppenrichtlinien-Verarbeitungen
erforderlich.
Diesen Nachteil können
Sie vermeiden, wenn Sie folgenden Trick anwenden:
- Die Umgebungsvariable mit der Zielgruppenadressierung wird unter Computerkonfiguration erstellt
- Die Anwendungskonfiguration wird mit Benutzereinstellungen durchgeführt
Da beim Starten und
bei der Anmeldung zuerst Gruppenrichtlinien für den Computer verarbeitet
werden, existiert die Umgebungsvariable dann bereits, wenn später Gruppenrichtlinien
für den Benutzer verarbeitet werden.
No comments:
Post a Comment