Wednesday, April 16, 2014

GPOs in der Praxis (3): Skripts ausführen



Mit der Einführung der Group Policy Preferences in Windows Vista und Server 2008 können viele Aufgaben, für die Skripts erforderlich waren, jetzt direkt mit Gruppenrichtlinien realisiert werden. Dazu gehören insbesondere die Zuordnung von freigegebenen Netzwerkressourcen (Laufwerke und Drucker) oder Änderungen im Dateisystem (Ordner und Dateien kopieren, erstellen und löschen). Trotzdem werden Sie gelegentlich Anforderungen haben, die sich mit Gruppenrichtlinien nicht oder nur umständlich erfüllen lassen. Dann ist die Verwendung von Skripts erforderlich.
Das Erstellen von guten Skripts ist nicht Thema dieses Abschnitts, denn damit lassen sich eigene Bücher füllen. Aber wir zeigen Ihnen, wie Sie Skripts sinnvoll in Ihr Umfeld integrieren können.
Sie finden weitere Informationen zu Skripts in Gruppenrichtlinien unter den Artikelnummern cc740163 und cc758918. Allgemeine Informationen zum Erstellen von Skripts finden Sie unter den Artikelnummern bb490869 (Batchdateien) und bb410849.

Asynchron oder synchron

Für Startskripts und Anmeldeskripts können Sie festlegen, ob diese asynchron oder synchron ausgeführt werden sollen (Pfad Richtlinien/Administrative Vorlagen/System/Skripts unter Computerkonfiguration und Benutzerkonfiguration in GPEdit).

Asynchron bedeutet, dass alle Skripts unabhängig voneinander in eigenen Prozessen gleichzeitig gestartet werden. Damit ist verbunden, dass ein Skript nicht auf ein anderes warten kann oder muss, aber auch, dass die Laufzeit der Skripts keine Rolle spielt. Im Gegensatz dazu bedeutet synchron, dass Skripts einzeln und eines nach dem anderen ausgeführt werden. Dadurch ist die Reihenfolge der Skripts eindeutig definiert, aber die Laufzeit der Skripts wird ein kritischer Faktor für den Computerstart oder die Benutzeranmeldung.


Für Anmeldeskripts heißt die entsprechende Einstellung Anmeldeskripts gleichzeitig ausführen. Damit ist gemeint, dass Anmeldeskripts synchron ausgeführt werden, also nacheinander und gerade nicht gleichzeitig.

Die Standardeinstellung für Startskripts (Computer) ist synchron (nacheinander), für Anmeldeskripts (Benutzer) asynchron (gleichzeitig). Abmeldeskripts und Skripts zum Herunterfahren werden immer synchron (nacheinander) ausgeführt. 
Bei Anmeldeskripts müssen Sie zusätzlich noch eine technische Abhängigkeit vom Ausführungsmodus beachten. Werden Anmeldeskripts synchron ausgeführt, dann findet die Ausführung innerhalb des Winlogon-Prozesses statt, bevor der Desktop erscheint. Werden sie dagegen asynchron ausgeführt, dann findet die Ausführung innerhalb des Explorer-Prozesses statt, der auch den Desktop darstellt, also auf der Benutzeroberfläche.

Wie und wo aufrufen?

Für das Starten von Skripts gibt es viele Möglichkeiten, die jeweils bestimmte Ausführungseigenschaften des Skripts bereitstellen.

  • Computerkonfiguration/Richtlinien/Windows-Einstellungen/Skripts/Starten
    Startmodus: Asynchron oder synchron, Kontext: SYSTEM

  • Computerkonfiguration/Richtlinien/Windows-Einstellungen/Skripts/Herunterfahren
    Startmodus: Synchron, Kontext: SYSTEM

  • Benutzerkonfiguration/Richtlinien/Windows-Einstellungen/Skripts/Anmelden
    Startmodus: Asynchron oder synchron, Kontext: Benutzer

  • Benutzerkonfiguration/Richtlinien/Windows-Einstellungen/Skripts/Abmelden
    Startmodus: Synchron, Kontext: Benutzer

  • Computerkonfiguration/Richtlinien/Administrative Vorlagen/System/Anmelden: Diese Programme bei der Benutzeranmeldung ausführen
    Startmodus: Asynchron, Kontext: Benutzer

  • Benutzerkonfiguration/Richtlinien/Administrative Vorlagen/System/Anmelden: Diese Programme bei der Benutzeranmeldung ausführen
    Startmodus: Asynchron, Kontext: Benutzer

  • Computerkonfiguration/Einstellungen/Windows-Einstellungen/Verknüpfungen – Speicherort: Alle Benutzer – Start
    Startmodus: Asynchron, Kontext: Benutzer

  • Benutzerkonfiguration/Einstellungen/Windows-Einstellungen/Verknüpfungen – Speicherort: Alle Benutzer – Start oder Starten
    Startmodus: Asynchron, Kontext: Benutzer

  • Computerkonfiguration/Einstellungen/Systemsteuerung/Geplante Aufgaben – Trigger: Beim Start
    Startmodus: Asynchron, Kontext: Taskbenutzer (SYSTEM, Benutzer oder andere)

  • Benutzerkonfiguration/Einstellungen/Systemsteuerung/Geplante Aufgaben – Trigger: Beim Start oder Bei Anmeldung
    Startmodus: Asynchron, Kontext: Taskbenutzer (SYSTEM, Benutzer oder andere)

  • Computerkonfiguration/Einstellungen/Windows-Einstellungen/Registrierung – Struktur: HKLM, Schlüsselpfad: Software\Microsoft\Windows\CurrentVersion\Run
    Startmodus: Asynchron, Kontext: Benutzer

  • Benutzerkonfiguration/Einstellungen/Windows-Einstellungen/Registrierung – Struktur: HKLM oder HKCU, Schlüsselpfad: Software\Microsoft\Windows\CurrentVersion\Run
    Startmodus: Asynchron, Kontext: Benutzer

  • Computerkonfiguration/Einstellungen/Windows-Einstellungen/Registrierung – Struktur: HKLM, Schlüsselpfad: Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
    Startmodus: Asynchron, Kontext: Benutzer

  • Benutzerkonfiguration/Einstellungen/Windows-Einstellungen/Registrierung – Struktur: HKLM oder HKCU, Schlüsselpfad: Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
    Startmodus: Asynchron, Kontext: Benutzer
Der Registrierungsschlüssel Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run ist im Ergebnis identisch mit der Richtlinieneinstellung Diese Programme bei der Benutzeranmeldung ausführen, die den gleichen Registrierungsschlüssel verwendet. GPP Registrierung als Ergänzung von Administrative Vorlagen ermöglicht aber besondere Konfigurationen, die wir z.B. in einem zukünftigen Blogbeitrag Bildschirmschoner je nach Computer (-gruppe) festlegen verwenden.

Wenn Sie alle diese Möglichkeiten verwenden, geht allerdings der Überblick über die implementierten Skripts verloren. Daher ist eine Bewertung erforderlich, welche Möglichkeiten gut oder weniger gut geeignet sind. Für die Bewertung können Sie folgende Kriterien verwenden:
  • Müssen Skripts abgeschlossen sein, bevor der Start oder die Anmeldung fortgesetzt werden darf? Dann müssen sie synchron ausgeführt werden.

  • Benötigen Skripts eine längere Zeit? Dann sollten sie asynchron ausgeführt werden.

  • Muss auf Dateien, Ordner oder Registrierungswerte zugegriffen werden, auf die der Benutzer keine Schreibrechte besitzt? Dann muss der Kontext von SYSTEM verwendet werden.

  • Muss auf Dateien, Ordner oder Registrierungswerte im Benutzerprofil zugegriffen werden? Dann muss der Kontext des Benutzers verwendet werden.

Aus der praktischen Erfahrung empfehlen wir Ihnen, bevorzugt folgende Möglichkeiten zu verwenden:

  • Computerkonfiguration/Richtlinien/Windows-Einstellungen/Skripts/Starten (Richtlinie Startskripts asynchron ausführen aktivieren)

  • Benutzerkonfiguration/Richtlinien/Windows-Einstellungen/Skripts/Anmelden (Richtlinie Anmeldeskripts gleichzeitig ausführen aktivieren)

  • Computerkonfiguration/Einstellungen/Windows-Einstellungen/Registrierung – Struktur: HKLM, Schlüsselpfad: Software\Microsoft\Windows\CurrentVersion\Run

  • Benutzerkonfiguration/Einstellungen/Windows-Einstellungen/Registrierung – Struktur: HKLM oder HKCU, Schlüsselpfad: Software\Microsoft\Windows\CurrentVersion\Run

Damit erreichen Sie eine einfache Verwaltbarkeit bei gleichzeitig großer Flexibilität. Die asynchronen Startskripts eignen sich für viele Aufgaben, auch für solche, die länger benötigen (z.B. das Kopieren einer größeren Menge von Dateien). Die synchronen Anmeldeskripts stellen sicher, dass der Benutzer noch keinen Desktop und damit auch keine Anwendungen geöffnet hat. Sie sollten allerdings nur eine kurze Laufzeit haben. Für länger laufende Skripts im Benutzerkontext wird mit Hilfe von GPP Registrierung der Registrierungsschlüssel Software\Microsoft\Windows\CurrentVersion\Run verwendet, der die gleiche Funktion hat wie Diese Programme bei der Benutzeranmeldung ausführen. Mit GPP Registrierung können Sie aber den Vorteil der Zielgruppenadressierung von Group Policy Preferences nutzen, und Sie können Umgebungsvariablen verwenden.

Die Richtlinieneinstellung Diese Programme bei der Benutzeranmeldung ausführen unterstützt grundsätzlich Umgebungsvariablen. Dafür muss in der Registrierung der Wertetyp REG_EXPAND_SZ verwendet werden. In der zugehörigen ADM(X)-Vorlage ist allerdings REG_SZ als Wertetyp festgelegt, Umgebungsvariablen werden daher nicht aufgelöst. Durch Verwenden von GPP Registrierung wird diese Einschränkung umgangen.

Hinweis: Dieser Blogbeitrag ist ein Auszug aus dem Buch »Windows Server 2012 R2 - Gruppenrichtlinien«, erschienen bei Microsoft Press. 

Druck-ISBN 978-3-86645-695-2
PDF-ISBN    978-3-8483-3067-6
EPUB-ISBN  978-3-8483-0226-0
MOBI-ISBN  978-3-8483-1203-0

Wer mehr lesen möchte, dem empfehle ich, sich dieses Buch zuzulegen – es gibt in deutscher Sprache kein besseres Referenzwerk.

Das Buch kann in allen Buchläden und –shops erworben werden, z.B. bei Amazon oder Thalia. (C) 2014 O'Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln.

No comments:

Post a Comment