Quantcast
Channel: Let's go, use GPO!
Viewing all 44 articles
Browse latest View live

Group Policy Preferences ohne Verbindung zum DC - kann das gut gehen?

$
0
0
Was ist Item Level Targeting?

Eines der meist genutzten Features der Group Policy Preferences ist das "Item Level Targeting". Mithilfe des ILT lassen sich einzelne Elemente mit einer
großen Anzahl an vorgefertigten Filtern versehen.

Noch bevor es die Preferences gab, konnte nur unterschieden werden, 
ob die gesamte Richtlinie bzw. der Benutzer- oder Computeranteil für den jeweiligen Anwender bzw. Computer gültig ist.

Item Level Targeting geht hier einen Schritt weiter und filtert innerhalb einer bereits zutreffenden Richtlinie die einzelnen Elemente.


Eine Liste aller ILTs findet ihr hier:

http://technet.microsoft.com/en-us/library/cc733022.aspx


Wie kann ich mir diese Filter zunutze machen?

Hat man erst einmal die Logik hinter den ILTs verstanden, lassen sich relativ einfach selbst komplexe Filter bilden.

Typische Beispiele:
  • Alle Notebooks / alle Desktops
  • Filter auf die Betriebssystemversion
  • Filter auf Sicherheitsgruppen
  • Benutzerdefinierte LDAP Filter
  • WMI Filter
  • IP-Range Filter
Und nun ein typisches Szenario:

Eine relativ beliebter Filter ist des "IP Address Range Targeting".
Stellen wir uns zum Beispiel folgendes Szenario vor:
  • Wir möchten eine Umgebungsvariable "OFFICE" erzeugen
  • Diese Variable soll auf "YES" gesetzt werden, so lange der Rechner mit dem Firmennetzwerk verbunden ist
  • Ist der Rechner außerhalb des Firmennetzwerkes, soll die Variable auf "NO" gesetzt werden
Wir erzeugen folgende Policy.

Das erste Item setzt die Variable auf "YES":

Wir erzeugen ein Item Level Targeting:


Nun erzeugen wir das Item, dass die Variable auf "NO" setzt, sobald wir in einem anderen Netzwerk als 172.16.0.0 bzw. 172.17.0.0 sind:


Dass sollte es gewesen sein.

Und nun der Funktionstest:

Zuerst innerhalb des Firmennetzwerkes:



Die Variable wird wie erwartet auf "YES" gesetzt.

Nun der Test außerhalb des Firmennetzwerkes (192.168.0.0).
Der Rechner wird zusätzlich gebootet.


Die Variable steht wider Erwarten auf "YES".

Was ist hier also passiert?

Ein Blick ins gpsvc.log verrät:

GPSVC(3a4.414) 08:59:32:968 Wait for network connectivity timed out... proceeding to apply policy.
GPSVC(3a4.414) 08:59:33:234 NlaQueryNetSignatures returned 1 networks
GPSVC(3a4.414) 08:59:33:234 NlaGetIntranetCapability failed with 0x15
GPSVC(3a4.414) 08:59:33:234 There is no domain compartment


etwas später:


GPSVC(3a4.50c) 08:59:49:484 NlaGetIntranetCapability returned Not Ready error. Consider it as NOT intranet capable.
GPSVC(3a4.50c) 08:59:49:484 There is no connectivity

Der Policy Zyklus schlägt fehl.
Für die "normalen" Policies ist dies kaum von Bedeutung.

Bei den Preferences hat dies jedoch eine massive Auswirkung.

Die Policy wird nicht gelesen und es kann auch nicht auf das XML-File der Policy zugegriffen werden.

Im XML-File der Policy befinden sich ebenfalls die Item Level Targetings.

Die Variable wird nicht wie erwartet geändert.

Fazit:

Um Richtlinien korrekt anwenden zu können, benötigen wir also immer eine Verbindung zum Domaincontroller bzw. zum Firmennetzwerk.

Preferences die sich auf unterschiedliche Netzwerke beziehen, funktionieren nur dann, wenn aus diesen Netzwerken heraus ein Domaincontroller erreichbar ist.

Da viele Einstellungen die per Group Policy Preferences geschrieben werden, auch direkt vom Benutzer geändert werden können (Einstellungen die im Benutzeranteil der Policy definiert sind), hat man keine Kontrolle über diese Einstellungen wenn keine Verbindung zum DC besteht.

Wollen wir zum Beispiel einen Registrykey setzen, funktioniert das
perfekt solange der Benutzer sich innerhalb des Firmennetzwerkes befindet.

(selbst wenn der Benutzer den Key ändert, wird er beim nächsten Policy-Zyklus erneut gesetzt)

Verlässt er jedoch dieses Firmennetzwerk, so kann er den Key unter Umständen ändern und er wird erst dann erneut gesetzt, wenn der Benutzer wieder Kontakt zum Domänennetzwerk hat.


Geplante Aufgabe als SYSTEM ausführen - Fehler 0x80070534

$
0
0
Die CSE "Scheduled Tasks"

Die Group Policy CSE "Scheduled Tasks" bietet eine einfache Möglichkeit
Aufgaben per Richtlinie zu konfigurieren.





Die Tasks können entweder per Benutzerkonfiguration oder Computerkonfiguration erstellt werden.

Benutzt man die User-Config, so lässt sich die Aufgabe zum Beispiel als angemeldeter Benutzer ausführen.


Es können die Variablen "%LogonDomain%\%LogonUser%" benutzt werden.




Kennwort speichern?

Anders schaut es bei der Computerkonfiguration aus.
Hier muss explizit ein Benutzer angegeben werden:




Es kann ein lokaler Benutzer oder ein Domänenbenutzer verwendet werden.



Verteilt man "Geplante Aufgaben" per Group Policy Preferences,
so möchte man in der Regel jedoch nicht das Passwort in der Group Policy speichern. 



Die Begründung liefert unter anderem dieser Technet Blog:
To obscure the password from casual users, it is not stored as clear text in the XML source code of the preference item. However, the password is not secured. Because the password is stored in SYSVOL, all authenticated users have read access to it. Additionally, it can be read by the client in transit if the user has the necessary permissions.

Because passwords in preference items are not secured, we recommend that you carefully consider the security ramifications when deciding whether to store passwords in preference items. If you choose to use this feature, we recommend that you consider creating dedicated accounts for use with it and that you do not store administrative passwords in preference items.

quelle:
http://blogs.technet.com/b/grouppolicy/archive/2009/04/22/passwords-in-group-policy-preferences-updated.aspx


Welchen Account benutzen?

Welchen Account könnte man also benutzen, der ausreichend Rechte auf dem Computer hat, jedoch es nicht erfordert ein Passwort zu speichern?

Die Antwort:
SYSTEM


OK, nichts leichter als das.
Per Object-Picker auswählen und gut ist es!?





Eingetragen wird anschließend "BUILTIN\SYSTEM" im UI des
GPP Items.


Wie verhält sich der Client?

Gleich vorneweg, der Task wird niemals am Client erzeugt werden.
Aktiviert man das Tracing der CSE, so erhält man folgenden Fehler:

[ hr = 0x80070534 "Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt." ]


Der Benutzer "BUILTIN\SYSTEM" kann also nicht zugeordnet werden.


Nächster Versuch, manuelles eingeben des Benutzers "SYSTEM":




Das Policy Item lässt sich speichern.
Am Client schlägt allerdings der gleiche Fehler auf, 0x80070534.


Wie verhält es sich, wenn der Task manuell angelegt wird?

Aufgaben werden im XML Format bereitgestellt.
Wenn wir manuell einen Task erzeugen, kann dieser als XML Datei exportiert werden.


<Principals>
    <Principal id="Author">
      <UserId>S-1-5-18</UserId>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
 </Principals>


Der User "SYSTEM" (genau genommen ist dies gar kein User, aber egal),
wird also mit seiner SID "S-1-5-18" eingetragen.


Schaut man sich allerdings das XML File der Policy an, wird er mit diesem Wert
hinzugefügt:

runAs="BUILTIN\SYSTEM"
Der Client kann dies nicht umsetzen und quittiert dies mit dem genannten Fehler.

Erzeugt man die Policy mit der SID, wird sie am Client übernommen.
Der Client übersetzt sogar die SID zum User "SYSTEM".




Fazit:

Sollen Tasks als Local System ausgeführt werden, so muss die SID als Benutzername verwendet werden.

Hier noch eine Liste der "Well-known security identifiers"

http://support.microsoft.com/kb/243330/en-us



Windows 8: GPP Drive Mapping als Administrator schlägt fehl

$
0
0
Unter Windows 8 und Server 2012 gibt es einen Bug, der das Mapping von Laufwerken fehlschlagen lässt.

Der Fehler tritt unter folgender Konstellation auf:
  • Die Laufwerke werden per GPP Drive Mapping gemappt
  • Als Betriebssystem wird Windows 8 oder Server 2012 eingesetzt
  • Das gemappte Laufwerk befindet sich in einem DFS-Namespace
  • Der DFS-Namespace läuft auf Windows Server 2008 R2, 2008 oder 2003
    (nicht 100%ig verifiziert)
  • Der Benutzer der sich anmeldet, ist Mitglied der lokalen Gruppe "Administrators" (SID S-1-5-32-544)
  • Die Option "Reconnect" im GPP Item ist aktiviert 
  • Der Fehler tritt selbst bei komplett deaktivierter UAC auf
Der Fehler äußert sich wie folgt:
  • Die Laufwerke werden nicht verbunden
  • Teilweise bei erster Übernahme der Policy wird jedoch das Laufwerk gemappt
  • Das Tracing der GPP Drive Maps CSE zeigt keine Fehler
  • Innerhalb des RSOP wird als Status der CSE "Pending" angezeigt


EnableLinkedConnections:

Einigen sollte ein ähnlicher Fehler bekannt sein, der im Zusammenhang mit der
Benutzerkontensteuerung und Anmeldeskripten auftritt.


http://support.microsoft.com/default.aspx?scid=kb;EN-US;937624

http://think-like-a-computer.com/2011/06/16/login-scrips-fail-map-drives/

Die Kurzfassung: Anmeldeskripte werden mit dem vollständigen Access-Token ausgeführt, insofern der Benutzer administrative Rechte auf dem Client hat.
Die Laufwerke werden folglich mit dem vollständigen Token gemappt.
Die Benutzersession (explorer.exe usw.) läuft jedoch unter dem gefilterten Token (welcher weniger Rechte besitzt).


Da beide Token eine unterschiedliche Logon-ID besitzen, schlägt der Zugriff auf die Laufwerke fehl.

Zitat Microsoft:
If a user is logged on to Windows Vista or to Windows 7, and if User Account Control is enabled, a program that uses the user’s filtered access token and a program that uses the user’s full administrator access token can run at the same time. Because LSA created the access tokens during two separate logon sessions, the access tokens contain separate logon IDs. 

Das Verhalten lässt sich mittels des Registry-Keys "EnableLinkedConnections" abstellen. Ein anderer Workaround ist das Skript "launchapp.wsf".

Zurück zu unserem Problem.
Da der Drive Mapping Fehler bei Windows 8 und Server 2012 auch bei komplett deaktivierter UAC auftritt, trifft das "
EnableLinkedConnections" Problem nicht zu.

Von einigen Usern wurden bereits Supportanfragen zu diesem Thema bei Microsoft eröffnet.
Der Fehler wurde auch von mir bei Microsoft eingereicht.
Nach langem Hin und Her lautet das Ergebnis:

By Design.


By Design ist bei Microsoft alles, was man nix fixen will bzw. was 
"so ist, wie es ist". Toll.

Wie ihr den Fehler dennoch umgehen könnt, erfahrt ihr hier:


Der Workaround

Im Item der Preference muss die Reconnect-Option deaktiviert werden:



Dies hat allerdings folgenden Nachteil:

User die sich ohne Netzwerkverbindung anmelden, erhalten keine Laufwerke.
Da die CSE "GPP Drive Maps" standardmäßig nur im Vordergrund ausgeführt werden kann, werden die Laufwerke erst dann wieder verbunden, wenn der Benutzer sich das nächste Mal mit Netzwerkverbindung anmeldet.

Dies ist insbesondere ein Nachteil für VPN Benutzer.


Zu hoffen bleibt, dass Microsoft die Auswirkungen dieses Bugs erkennt und eine "richtige" Lösung präsentiert.

Die Hoffnung stirbt zuletzt.
 

User Shell Folders Umgebungsvariablen umbauen mittels Group Policy Preferences

$
0
0
Group Policy Preferences bringen von Haus aus eine Menge von
Variablen mit. Drückt man die Taste "F3" in einem Textfeld, so erscheint die
 

Liste von verfügbaren GPP-Umgebungsvariablen:


Link zu allen GPP-Variablen



Zusätzlich können die vom System bereitgestellten "normalen" User- und Systemvariablen verwendet werden.
So gibt es in den GPP Variablen zum Beispiel keine Komponente für den Pfad
"C:\Program Files (x86)". Es kann die normale Variante "%ProgramFiles(x86)%" benutzt werden.


Teilweise ist dies aber nicht genug.
Dies gilt vor allem für die sogenannten User Shell Folders.


User Shell Folders


Diese USF befinden sich in der Registry unter:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders


In diesem Bereich werden Pfade zu Explorer Verzeichnissen gespeichert.

Mit ein paar einfachen Schritten lassen sich diese Schlüssel in Umgebungsvariablen umbauen, die dann für Group Policies oder auch allgemeine Zwecke benutzt werden können.

Umbau der USF mittels GPP

1. Schritt

Wir erzeugen eine neue Umgebungsvariable mittels GPP.


Zu finden unter:

Computer Configuration or User Configuration
   └ Preferences
      └ Windows Settings
         └ Environment

In unserem Beispiel handelt es sich um "User Configuration".
Als Wert weisen wir jedoch eine temporäre Variable "%TEMPVAR%" zu.


 
2. Schritt

Diese Variable muss nun gefüllt werden.
Hierbei hilft uns das "Item Level Targeting" kurz ILT.


Wir legen ein ILT auf Basis von "Registry Match Targeting" fest.

Als "Match type" wählen wir "Get value data".



Fertig.
Da zuerst die Filter überprüft werden, wird der betreffende Registrykey ausgelesen. Dieser wird in eine temporäre Variable geschrieben, %TEMPVAR%.
Diese Variable füllt dann unsere "richtige" Variable %LINKS%.


Known Folder GUIDs for File Dialog Custom Places

Auf diesem Wege lassen sich auch die Known Folder GUIDs umbauen.
Allerdings werden diese an unterschiedlichen Stellen in der Registry gespeichert.

Ein Teil davon landet unterhalb der USF. 

Der Großteil jedoch unter:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions


Inwieweit sich die KFGs in Variablen umbauen lassen, hängt von den gespeicherten Werten ab.

Fazit:

Mittels Item Level Targeting und der Environment CSE lassen sich sehr flexibel
Registrywerte in benutzbare Umgebungsvariablen umwandeln.

Drag & Drop von Preference Items funktioniert nicht mehr unter Windows 8

$
0
0
Heute wieder einmal ein Fehler, der zwar nicht gelöst werden kann, aber für den es zumindest einen Workaround gibt.

In den "Remote Server Administration Tools" (RSAT) unter Windows 8 oder Server 2012 ist ein Bug vorhanden, der das Importieren von GPP Items per Drag & Drop verhindert.

Exportieren und Importieren von Items

Exportieren:

Die betreffenden Elemente können einfach auf den Desktop gezogen werden. 


Danach wird dort eine XML Datei angelegt.


Diese Datei lässt sich dann editieren oder einfach nur als Sicherungskopie aufbewahren.


In gleicher Weise konnte man unter Windows 7 und Server 2008 R2
Elemente importieren.


Importieren:

Versucht man jedoch in den Windows NT 6.2 RSAT Elemente zu importieren, so erscheint das Drop-Symbol nicht:




Nach längerer Recherche scheint es so, also wäre schlichtweg nur ein
Drag-Event vorhanden, jedoch kein Drop-Event.
Dies scheint wohl in der Programmierung schief gelaufen zu sein.


Wann benötigt man den Import von XML Dateien?
  • Man möchte eine Sicherungskopie des Preference Item wiederherstellen 
  • Man möchte eine manuell editierte XML Datei importieren
  • Man benutzt reg2xml
Mittels reg2xml lassen sich .REG Dateien in .XML Registrierungselemente umwandeln. Die konvertierten XML Dateien werden dann per Drag & Drop in die GPMC eingefügt.

Wie lassen sich die XML Dateien importieren?


Workaround 1:


Die Datei per Kontextmenü kopieren und einfügen:



Workaround 2:


Der zweite Lösungsweg ist etwas umständlicher.


Zunächst muss ein Dummy-Element in der GPMC angelegt werden.
Dies ist wichtig für die Erzeugung der XML Datei und der Registrierung der jeweiligen CSE im AD Objekt der Policy.

Nun muss man per Explorer zur jeweiligen Policy navigieren.


Im Falle eines Registry-Items ist dies:


\\domain.local\SYSVOL\domain.local\Policies\{GUID}\machine\Preferences\Registry

bzw.


\\domain.local\SYSVOL\domain.local\Policies\{GUID}\user\Preferences\Registry

Dort befindet sich eine Registry.xml die ersetzt werden muss.

Weitere Information zu diesem Thema:

http://social.technet.microsoft.com/Forums/en-US/winserverGP/thread/2abf6cb1-d900-4d21-a59e-c9687c564b0d


Windows 8: The scheduled task nightmare goes on

$
0
0
Vor einiger Zeit habe ich schon einmal über ein seltsames Verhalten beim Anlegen von geplanten Tasks berichtet.

Geplante Aufgabe als SYSTEM ausführen - Fehler 0x80070534

Damals drehte es sich um die Verwendung des Benutzers "SYSTEM".

0x80070057 unter Windows 8

Unter Windows 8 tritt nun ein neuer Fehler auf.
Dieser Fehler besteht nur, wenn man einen klassischen Task per Group Policy Preferences anlegen will.



Als Test benutzen wir diesen Task:



Der Task wird jedoch nie am Client angelegt.
Aktiviert man das GPP Tracing, so zeigt sich folgender Fehler:

2013-01-09 11:32:45.523 [pid=0x36c,tid=0xbbc] Starting filter [AND FilterComputer].
2013-01-09 11:32:45.523 [pid=0x36c,tid=0xbbc] Properties handled. [ hr = 0x80070057 "The parameter is incorrect." ]
2013-01-09 11:32:45.523 [pid=0x36c,tid=0xbbc] Error suppressed. [ hr = 0x80070057 "The parameter is incorrect." ]


Das Problem tritt für definierte Tasks in der Computerkonfiguration als auch Benutzerkonfiguration auf.

Wird explizit ein Benutzer zur Ausführung der Aufgabe angegeben, so erscheint der gleiche Fehler 0x80070057.


Die Lösung:

Es muss ein v2-Task angelegt werden.

Dieser Task nennt sich "Geplante Aufgabe (mindestens Windows 7)".

Das Anlegen in dieser Form bringt einem erst einmal keine Nachteile,
im Gegenteil, es können die erweiterten Features der v2-Tasks genutzt werden.


Einen Haken hat diese Lösung jedoch, sollen Tasks ebenfalls für Betriebssysteme kleiner Windows 7 erstellt werden, so muss man nun zwei GPP Items anlegen:

- einen klassischen Task für alle Systeme inkl. Windows Vista
- einen neuen Task für alle Systeme ab Windows 7




Die neue Aufgabe wird ohnehin nicht auf einem "alten" Betriebssystem angelegt. 
Allerdings wird ohne Verwendung eines Item Level Targetings versucht,
den klassischen Task auf Windows 7 und Windows 8 Maschinen anzulegen
(ebenfalls Server 2008 R2 und Server 2012).

Bei Windows 7 funktioniert das in der Regel, bei Windows 8 erscheint der genannte Fehler.

Trennen der Tasks durch Item Level Targeting:

Die saubere Lösung ist die Verwendung von zwei ILTs:

Neuer Task:



Alter Task:


PowerShell - Leere Benutzer- und Computerkonfigurationen deaktivieren

$
0
0
Microsoft's Best Practice schlägt vor, ungenutzte Benutzer- bzw.
Computerkonfigurationen zu deaktivieren.

Mehr Informationen dazu hier:

http://technet.microsoft.com/en-us/magazine/dd673616.aspx

http://support.microsoft.com/kb/315418/en-us


Deaktivierung per GPMC:

Die Deaktivierung kann in der GPMC erfolgen:


Das Hauptproblem liegt darin, leere GPOs aufzufinden.
Bei einer großen Anzahl von GPOs ist die manuelle Methode unbrauchbar.


Deaktivierung per PowerShell:

Für die automatische Deaktivierung per PowerShell habe ich ein Skript geschrieben:


# You will use this script at your own risk.
#
# Matthias Wolf - MVP Group Policy
# http://matthiaswolf.blogspot.com
#

import-module GroupPolicy

$gpos = get-gpo -All

foreach ($item in $gpos)

{

      # Checking if Computer Configuration is empty
      if ($item.Computer.DSVersion -eq 0)

     {

             write-host $item.DisplayName Computer Config is empty
             write-host Disabling Computer Config
             $item.Computer.Enabled=$false

      }
     
      # Checking if User Configuration is empty
            if ($item.User.DSVersion -eq 0)

     {

             write-host $item.DisplayName User Config is empty
             write-host Disabling User Config
             $item.User.Enabled=$false

      }

}


Das Skript könnt ihr hier herunterladen.
Download


Zu beachten:

Zwei Dinge sind zu beachten.

1. Das Skript verwendet die Versionsnummer der Konfiguration


Wird die Policy bearbeitet erhöht sich die Versionsnummer.
Werden die Einstellungen wieder aus der Policy entfernt, erhöht sich ebenfalls die Versionsnummer!

Bereits verwendete Policies (auch wenn diese mittlerweile leer sind) werden also nicht deaktiviert.

2. Deaktivierte Einstellungen bleiben deaktiviert

Deaktiviert man einen Policy-Anteil, so bleibt dieser so lange deaktiviert bis man dies wieder rückgängig macht.

Wird z.B. die Benutzerkonfiguration deaktiviert und ein Admin setzt danach Einstellungen in der Benutzerkonfiguration, so muss diese erst wieder manuell aktiviert werden. 

Performancegewinn?:

In der Theorie werden die Richtlinien schneller abgearbeitet.
Der eigentliche Gewinn ist jedoch nur schwer messbar.


Group Policy MVP Darren Mar-Elia berichtet unter anderem in seinem Artikel "Optimizing Group Policy Performance" darüber.

Der größte Vorteil besteht meiner Meinung nach in der Übersichtlichkeit der Richtlinien. In der GPMC ist direkt ersichtlich welche Richtlinen Computer- bzw. Benutzerkonfigurationen enthalten:



 

Lokale Benutzer und Gruppen - Änderungen an Built-in Benutzerkonten

$
0
0
Die Client Side Extension "Lokale Benutzer und Gruppen" bietet einem die Möglichkeit Änderungen an sogenannten "Built-in" Benutzerkonten durchzuführen. 

Built-in user accounts are installed with all Windows NT workstations and servers. These accounts are local to the individual system they are installed on and may have domain-wide access depending on how the computer is set up. The built-in accounts include Administrator, Guest, and System.


quelle:
http://technet.microsoft.com/en-us/library/cc722455.aspx


In der CSE stehen folgende Benutzerkonten zur Auswahl:



Die ungünstige Benutzeroberfläche

Leider ist die grafische Benutzeroberfläche so gestaltet, dass sich
Optionen auswählen lassen, die für Built-in Benutzerkonten nicht zur Verfügung stehen.

So kann für einen integrierten Benutzer zum Beispiel kein Ablaufdatum definiert werden. Das GUI lässt dies jedoch zu.



Die logische Folge

Es lassen sich Preference Items definieren die vom Client nie verarbeitet werden können. Die Fehlersuche gestaltet sich schwierig.

Um euch diese Arbeit zu ersparen erhaltet ihr hier eine Liste von Optionen,
die sich verarbeiten bzw. nicht verarbeiten lassen.



Diese Kombinationen funktionieren auf Windows 7 und Windows 8:






Diese Kombination funktioniert nur auf Windows 7, nicht auf Windows 8:


Diese Kombinationen funktionieren weder auf Windows 7 noch Windows 8:




Unter Windows 8 ist das Verhalten der CSE seltsam.
Selbst wenn alle Optionen wie oben dargestellt eingehalten werden, gibt es keine 100%ige Garantie, dass die Einstellungen auch wirklich verarbeitet werden können.

Hier noch ein kurzer Workaround in dieser Sache:

Anstatt der Verwendung des vordefinierten Elements "Administrator (integriert)", schreibt man einfach den Namen "Administrator" in das Textfeld.


Bitte beachtet, dass sich die Namen der Built-in Benutzerkonten je nach Betriebssystemsprache unterscheiden können!

Der große Group Policy Troubleshooting Guide

$
0
0
"Der große Group Policy Troubleshooting Guide", das klingt zunächst einmal mächtig. Da mögen sich einem einige Fragen stellen:
  • Werde ich nun also alles zum Thema GPO-Troubleshooting erfahren?
  • Kann ich am Ende dieses Tutorials alle GPO-Fehler selbst lösen?
  • Gpresult und gpupdate sollten doch reichen?
  • So kompliziert kann das doch nicht sein, oder?
Die Antwort auf die meisten dieser Fragen lautet leider "nein".
Die Abarbeitung von Group Policies ist ein relativ komplexer Prozess der von vielen Bedingungen abhängig sein kann. Group Policies müssen jedoch nicht kompliziert sein.

Fehlerkategorien

Gruppenrichtlinienfehler lassen sich grob in zwei Kategorien einteilen.

1. Logische Fehler 

Der größte Anteil an Problemen tritt aufgrund von Denkfehlern auf.
Vielen ist das genaue Zusammenspiel zwischen Sicherheitsfilterungen,
WMI Filtern, Loopback Processing und vor allem dem sogenannten SOM (Scope of Management)nicht bekannt.


2. Technische Fehler  

Die zweite Kategorie umfasst Fehlkonfigurationen, Netzwerkprobleme und Replikationsprobleme. 

Inhalt des Guides 

Teil 1:
Der erste Teil behandelt Fehler der Kategorie 1. 

Teil 2:
Hier geht es primär um technische Fehler.

  • Welche Fehler können auftreten?
  • Welche Logfiles werden geschrieben?
  • Wo finde ichGPO-Eventlogs?
  • Wie kann das Verhalten einzelner CSEs analysiert werden? 
Teil 3:
Der letzte Teil umfasst das Thema GPO-Performance.

  • Welche Timeouts können beim Abarbeiten von Policies auftreten?
  • Wie lassen sich erhöhte Laufzeiten von Policies erkennen?
  • Welche CSEs können erhöhte Laufzeiten verursachen?
  • Wie wirkt sich das Policy- und AD Design auf die Laufzeit der GPOs aus?

Der große Group Policy Troubleshooting Guide - Teil 1/3

$
0
0
Im ersten Teil der Reihe "Der große Group Policy Troubleshooting Guide"
geht es um Fehler, die eigentlich keine sind. Man könnte diese Fehler als "Denkfehler" bezeichnen.

Damit Richtlinien überhaupt angewendet werden können, muss der Client diese sehen und darauf zugreifen können.

Scope of Management
Microsoft bezeichnet den Verwaltungs- / Wirkungsbereich von Richtlinen SOM = Scope of Management.

Im SOM der Policy finden sich alle Clients / Benutzer die die Policy anwenden können.

Nehmen wir zum Beispiel eine Policy "GPO-01", die User Settings enthält.


└───Users
    └───Sales-01
        └───Sales-02 -- GPO-01


Ist die Policy auf der OU "Sales-02" verlinkt, so ist der SOM der Policy
die OU "Sales-02". Im Wirkungsbereich der Policy befinden sich alle
User in dieser OU. User von "Sales-01" befinden sich also nicht im SOM der GPO-01.


Wäre die Richtlinie allerdings an oberster Stelle auf der Domänenebene verlinkt, so umfasst der SOM die gesamte Domäne.

Richtlinien lassen sich auf verschiedenen Ebenen verknüpfen:

  • Auf AD-Standorten (Site)
  • Auf der Domänenebene
  • Auf Organisationseinheiten
Benutzer und Computer die sich nicht im Wirkungsbereich einer Policy befinden, können diese auch nicht anwenden.

Benutzer- und Computereinstellungen - Policies richtig verknüpfen
Jede Richtlinie ist in Computer- und Benutzereinstellungen aufgeteilt.
Beinhaltet eine Richtlinie beispielsweise Benutzereinstellungen, so muss diese auch mit einer OU verknüpft werden, die User enthält.

Einfaches Beispiel: Wir haben eine "Test-GPO-USR" die ausschließlich Benutzereinstellungen enthält. Die Active Directory Struktur schaut wie folgt aus:

└───domain.intern
    ├───germany
    │   ├───com
    │   └───usr
    └───usa
        ├───com
        └───usr


Die Policy soll nun für alle Benutzer der OU "germany" angewendet werden.
Dies wird erreicht, indem die Policy wie folgt verlinkt wird:

└───domain.intern
    ├───germany
    │   ├───com
    │   └───usr  ---- Test-GPO-USR
    └───usa
        ├───com
        └───usr

Wird die Policy fälschlicherweise wie folgt verlinkt, hat diese keine Auswirkung:

└───domain.intern
    ├───germany
    │   ├───com --- Test-GPO-USR
    │   └───usr
    └───usa
        ├───com
        └───usr


Die Policy muss immer anhand ihrer Einstellungen verlinkt werden.
Enhält sie nur Computereinstellungen:
Mit einer OU, die Computerkonten enthält.

Enhält sie nur Benutzereinstellungen:
Mit einer OU, die Benutzerkonten enthält.

Merken. Merken. Merken.
Versteht man diese Logik nicht, wird man definitiv auf Probleme bei der Anwendung von Richtlinien stoßen.


Mehr zu diesem Thema in meinem vergangenen Artikel:
http://matthiaswolf.blogspot.de/2011/12/lies-of-gpo-3.html


Loopback Processing:
Loopback Processing ist eine Einstellung, die das Verhalten der GPSVC-Engine verändert. Diese Einstellung gilt immer für alle Richtlinien die ein Computer anwendet.
Die Anwendung der Computereinstellungen werden nicht beeinflusst.

Nur die Benutzereinstellungen werden anders angewendet.

Es gibt zwei Varianten von Loopback.


Loopback Merge:
Hierbei entstehen zwei GPO Durchläufe.
Der erste Durchlauf läuft wie gewohnt ab, die Benutzereinstellungen werden anhand der Position des Benutzerobjekts im Active Directory abgearbeitet.

Ist dieser Prozess abgeschlossen, wird der Suchfilter geändert.
Nun startet ein zweiter Durchlauf, hierbei ist allerdings die Position des Computerobjekts im Active Directory entscheidend.

Zum Verständnis noch einmal, es geht nur um die Anwendung der Benutzereinstellungen.
Loopback Merge verdoppelt die Abarbeitungszeit der Richtlinien nahezu.

Loopback Replace:
Bei Replace ist nur noch die Position des Computerobjekts entscheidend.
Es gibt nur einen Durchlauf.


Loopback ist ein komplexes Thema.
Deshalb noch ein paar Hintergrundinformationen:

http://evilgpo.blogspot.de/2012/02/loopback-demystified.html
http://www.msxfaq.de/verschiedenes/gpo.htm

Wichtig, ab Windows Vista müssen die Sicherheitseinstellung der Richtlinien angepasst werden:

http://matthiaswolf.blogspot.de/2011/11/gpo-loopback-benotigt-leserechte-fur.html


Zur Wiederholung: 
Damit Richtlinien überhaupt angewendet werden können, muss der Client diese sehen (Scope of Management)und darauf zugreifen können.

Filtern von Richtlinien / Einschränken des SOM

Innerhalb des Active Directory lässt sich eine gruppenrichtlinienoptimierte Aufteilung realisieren. Allerdings wird es immer wieder Richtlinien und Einstellungen geben, die nur für eine kleinere Benutzer- bzw. Computergruppe gelten sollen. Um dies zu realisieren bieten Gruppenrichtlinien die Möglichkeit den SOM weiter einzuschränken. Es gibt verschiedene Filtermechanismen. 
  • Sicherheitsfilterungen
  • WMI-Filterungen
  • Zielgruppenadressierungen (Item Level Targeting)
Sicherheitsfilterungen verstehen 
Um diese Filterungsvariante zu verstehen hilft einem ein einfacher Vergleich.
Der Zugriff auf Dateien und Ordner lässt sich mit NTFS Berechtigungen einschränken. So kann zum Beispiel auf Dateiebene eingestellt werden, dass ein Benutzer eine Datei lesen, jedoch nicht bearbeiten kann.

Hierbei gibt es zwei Möglichkeiten.
Es können Berechtigungen zugeteilt oder verweigert werden.

Verweigerungen haben immer Vorrang gegenüber Zuteilungen.
Einfaches Beispiel:

Der Benutzer Peter ist Mitglied der Gruppen "Einkauf" und "Domain Users".
Die Berechtigungseinstellung auf dem Ordner sieht wie folgt aus:

  • Domain Users - Lesen erlaubt, Bearbeiten verweigert
  • Einkauf - Lesen erlaubt, Bearbeiten erlaubt
Da der Benutzer Mitglied beider Gruppen ist und die Verweigerung Vorrang hat, sieht seine effektive Berechtigung wie folgt aus: Lesen erlaubt.

Dieses Verfahren lässt sich auf die Gruppenrichtlinien übertragen.
Hier gibt es ebenfalls verschiedene Berechtigungsarten.
Die Wichtigste davon ist "Gruppenrichlinie übernehmen".
Diese ist entscheidend für die Anwendung einer Gruppenrichtlinie.


Man kann diese Berechtigungen Benutzer- als auch Computerkonten zuteilen.

Verweigert man einem Computerkonto die Berechtigung "Gruppenrichtline übernehmen" so wird dieser den Anteil "Computereinstellungen" der jeweiligen Richtlinie nicht anwenden können.

Verweigert man einem Benutzerkonto die Berechtigung "Gruppenrichtline übernehmen" so wird dieser den Anteil "Benutzereinstellungen" der jeweiligen Richtlinie nicht anwenden können.
Tipp:
Nach Möglichkeit nicht den gesamten Zugriff auf die Policy verweigern.
Dem Benutzer- bzw. Computer sollte das Recht "Lesen" erhalten bleiben um unschöne RSoP (Resultant Set of Policies) Meldungen zu vermeiden.
WMI-Filter verstehen
WMI Filter sind Abfragen die das WMI (Windows Management Instrumentation) Repository benutzen. Mittels WMI lassen sich nahezu alle computerspezifischen Daten abfragen. Da die WMI Filterung noch vor der Unterscheidung von Benutzer- oder Computereinstellungen stattfindet, lassen sich nur nicht-benutzerspezifische Werte abfragen.
mehr Informationen:
http://www.microsoft.com/germany/technet/datenbank/articles/600682.mspx
http://blogs.technet.com/b/askperf/archive/2007/06/12/wmi-architecture-basics.aspx
WMI Filter können zeitintensive Abfragen ausführen.
Schaut euch bitte zu diesem Thema meinen vergangenen Post
The lies of GPOs! #4 - "WMI Filter sind nicht performant" an.


Verkettet man mehrere WMI Filter, so muss man verstehen, dass diese in einer AND Beziehung stehen. Alle Filter müssen den Wert "True" liefern damit die Policy angewendet wird.

Die Kombination aus folgenden Filtern (Abfrage Betriebssystem und Bittigkeit) wird nie den Wert "True" liefern können:

select * from Win32_OperatingSystem WHERE Version < '5000' AND ProductType="1" AND NOT OSArchitecture = "64-bit"

select * from Win32_OperatingSystem WHERE Version > '5000' AND ProductType="1" AND NOT OSArchitecture = "64-bit"

select * from Win32_OperatingSystem WHERE Version > '5000' AND ProductType="1" AND OSArchitecture = "64-bit"



Es kann in diesem Falle immer nur eine Bedingung erfüllt werden.
Würde man also diese drei Filter kombinieren, wäre nur maximal eine Bedingung erfüllt. So würde die Policy nicht angewendet.



Tipp:
Abfragen die länger als 30 Sekunden dauern, werden ab Windows 6.0 SP2 und Windows 6.1 SP1 automatisch mit "False" beantwortet.

Item Level Targeting - jetzt wird es granular
Group Policy Preferences teilen ihre Einstellungen in sogenannten "Elemente / Items" ein. Dies bietet die Möglichkeit viele verschiedene Einstellungen in nur einer Richtlinie darzustellen.
Damit nicht alle Einstellung angewendet werden, lassen sich diese einzelnen Items ebenfalls einschränken. Dazu benutzt man das "Item Level Targeting".

Im ILT gibt es bereits viele vordefinierte Filter.

Diese einzelnen Elemente lassen sich gruppieren und sowohl mit AND als auch mit OR Operatoren verknüpfen.


F5, F6, F7, F8
Eine Besonderheit der Preferences ist wie eben genannt die Granularität.
Mittels der Funktionstasten F5-F8 können einzelne Einstellungen aktiviert / deaktiviert werden.


Vergisst man eine Einstellung zu aktivieren, wird sie nicht am Client angewendet.

Mehr dazu:
http://blogs.technet.com/b/grouppolicy/archive/2008/10/13/red-green-gp-preferences-doesn-t-work-even-though-the-policy-applied-and-after-gpupdate-force.aspx


Weitere Denkfehler
Neben der Missachtung der oben genannten Filtermechanismen und der Beachtung des SOM gibt es noch weitere Logikfehler.
Nachfolgend eine Liste beliebter Denkfehler im Umgang mit GPOs:
  • Die Richtlinie wurde versehentlich nicht verknüpft.
    Hier sind wir wieder bei dem Punkt "Gruppenrichtlinien sehen". Nur eine richtig verknüpfte Policy kann auch vom Client gefunden und ggf. angewendet werden. 
Tipp:
Ob eine Richtlinie überhaupt verknüpft ist, seht ihr am einfachsten im Reiter "Bereich / Scope" :
  • Es wurde versehentlich die Benutzer- bzw. Computerkonfiguration der Richtlinie deaktiviert.
    Deaktivierte Gruppenrichtlinienteile werden nicht angewendet.

  • Die Vererbung der Richtlinien wird falsch verstanden bzw. missachtet. Man muss das Rad nicht neu erfinden, deshalb: http://www.gruppenrichtlinien.de/artikel/vererbung-und-hierarchien/

Der große Group Policy Troubleshooting Guide - Teil 2/3

$
0
0
Nachdem ich euch in Teil 1 des "Group Policy Troubleshooting Guides" bereits die häufigsten logischen Fehler gezeigt habe, geht es nun um technische Fehler.

Folgende Themen werden behandelt:

  • Welche Fehler können auftreten?
  • Wo finde ich GPO-Eventlogs?
  • Welche Logfiles werden geschrieben?
  • Wie kann das Verhalten einzelner CSEs analysiert werden
DNS - Die Grundlage für eine korrekte Richtlinienabarbeitung
Eine funktionierende DNS-Auflösung ist die Grundlage für eine funktionierende Authentifizierung und Anwendung von Gruppenrichtlinien.
Damit der Client einen Domaincontroller finden kann, muss dieser Anfragen an den DNS Server stellen. Im Zuge dieses Prozesses wird ebenfalls die betreffende Active Directory Site des Clients ermittelt.
Den kompletten Vorgang der Ermittlung des Domaincontrollers findet ihr bei Yusuf Dikmenoglu.

Im weiteren Verlauf der Gruppenrichtlinienabarbeitung werden immer wieder LDAP Abfragen an den DC gesendet. Funktioniert die DNS Auflösung nicht oder nur teilweise, so sollte spätestens beim Zugriff auf das SYSVOL Verzeichnis ein Fehler auftreten. Die GPSVC Engine versucht unter anderem das File Gpt.ini aus dem Verzeichnis jeder Policy zu lesen.

Den genauen Prozessablauf findet ihr hier:
http://technet.microsoft.com/en-us/library/cc784268%28v=ws.10%29.aspx

Beliebte Fehler in der DNS Konfiguration
1. Am Client ist der primäre DNS Server kein DC

Ein Fehler der gerade in kleineren Umgebungen häufig zu finden ist.
Dort wird oftmals als primärer DNS am Client ein Internet Router angegeben.

Der Hintergedanke ist wohl meist, dass dieser Router sowohl die lokalen Adressen, als auch die "unbekannten" Adressen des Internets auflösen kann.

Für die Anwendung von Gruppenrichtlinien kann das jedoch fatale Folgen haben. Der DC Locator Process ist auf die sogenannten SRV Records angewiesen.

Diese sind in der Regel auf Microsoft DNS Server vorhanden, jedoch nicht zwangsläufig auf dem DNS Server des Internet Routers.
Fehlen diese SRV Records (dazu auch mehr in 2.), kann auch die Anwendung der Richtlinien fehlschlagen.

 

Deshalb merken:
Als primärer DNS sollte immer ein DC mit DNS Server (oder ein anderer Windows DNS Server) eingetragen werden.

Im optimalen Falle befindet sich dieser in der gleichen AD-Site wie der Client.

 

2. Fehlende DNS Records
Für die Suche des Domaincontrollers sind diverse SRV Records erforderlich.

Fehlt ein Teil oder alle diese Einträge, kann die Anwendung der Gruppenrichtlinien und die Ermittlung des Domaincontrollers fehlschlagen.

Sollten nicht nur einzelne Clients betroffen sein und dessen Client DNS Konfiguration korrekt sein, sollte man die SRV Records auf den Domaincontrollern überprüfen.

Dazu eignen sich folgende Tools:
DNSLint /ad
dcdiag /test:dns

Leider ist dieser genannte Fehler schwer zu diagnostizieren,
deshalb hier noch einige weiterführende Informationen:

http://blogs.technet.com/b/askpfeplat/archive/2012/07/09/the-case-of-the-missing-srv-records.aspx
http://support.microsoft.com/kb/816587/en-us


3. Grundlegende Netzwerkprobleme

Stimmt das Netzwerklayout nicht oder handelt es sich um eine Misskonfiguration auf Netzwerkebene, kann die DNS-Auflösung und somit auch das Abarbeiten der Gruppenrichtlinien fehlschlagen.

Hierzu zählen unter anderem Probleme wie:

  • falsch eingetragene Routen
  • falsche Firewallkonfigurationen
  • nicht erreichbare DNS-Server
  • falsch konfigurierte DNS Reihenfolge
  • fehlende / falsche DNS Suffixe
  • falsch konfigurierte DNS Forwarder
  • falsche VLAN Einstellungen
Replikations- oder AD-Probleme
Technisch betrachtet besteht jede Gruppenrichtlinie aus zwei Teilen.
Gemeint ist hier nicht die Benutzer- und Computerkonfiguration, sondern der Richtlinienanteil im Group Policy Container (GPC) und der Anteil innerhalb des Group Policy Templates (GPT).

GPC - Group Policy Container: 

Innerhalb des GPC werden nicht die einzelnen Einstellungen der Richtlinien gespeichert, sondern viel mehr die "Metadaten" der Richtlinien.
Hier sind Informationen hinterlegt wie:

  • Welche Richtlinien gibt es
  • Wo sind die einzelnen Richtlinien verlinkt
  • Welche Client Side Extensions (CSEs) verwenden die einzelnen Richtlinien
  • Wie lautet der Pfad zum GPT
  • Welche Berechtigungen haben die einzelnen Richtlinien
  • Der GUID jeder Richtlinie
Vereinzelt werden dennoch spezielle Richtlinieneinstellungen innerhalb des GPC gespeichert. Hierzu gehören Einstellungen wie:
  • Wired Network Policies (802.3)
  • Wireless Network Policies (802.11)
  • Deployed Printer Connections
GPT - Group Policy Template:
Hier sind die eigentlichen Einstellungen hinterlegt.
Beim GPT handelt es sich um eine Netzwerkfreigabe namens "SYSVOL".

Pro Richtlinie gibt es jeweils ein Verzeichnis.
Der Verzeichnisname entspricht dem GUID der Richtlinie.

Der GPC und GPT werden unterschiedlich repliziert.
Der GPC wird über die Active Directory Replikation wie alle anderen AD-Objekte repliziert. Die Replikation des GPT übernimmt der FRS (File Replication Service) oder unter Server 2008 (falls konfiguriert) DFS-R.

GPC und GPT besitzen jeweils eine eigene Versionierung.
Stimmt die Versionsnummer der beiden Richtlinienanteile im GPC und GPT nicht überein, so treten Probleme bei der Anwendung der Richtlinie auf.
Zu bedenken ist auch, dass die Replikation unter Umständen einen größeren Zeitraum in Anspruch nehmen kann.
Dies gilt insbesondere für Replikationen die nicht innerhalb einer Active Directory Site stattfinden.


Replikationsprobleme erkennen
Der erste Anhaltspunkt sollte wie so oft die Ereignisanzeige sein.

Ereigniskategorien die ihr unbedingt prüfen solltet:



Weitere Tools um die AD-Funktionalität und Replikation zu überprüfen:

  • dcdiag
    Der Klassiker für die AD-Diagnose.
  • GPOTool
    Das GPOTool ist schon etwas in die Jahre gekommen. Dennoch bietet es noch zuverlässige Dienste. Mit dem GPOTool können die einzelnen Richtlinienversionen auf den verschiedenen Domaincontrollern verglichen werden.
  • Die GPMC von Server 2012 (und Windows 8).
    Hier können nun unter dem Reiter "Status" die Versionsstände verglichen werden.
    (in der Testumgebung des Screenshots gab es nur einen DC, deshalb wird bei beiden Werten "0" angezeigt)



Auf das Netzwerk warten?
Gruppenrichtlinien können im Vordergrund oder im Hintergrund ausgeführt werden. Vereinfacht könnte man es so bezeichnen:

 
Im Vordergrund =
Beim Hochfahren des Rechners
Beim Anmelden Benutzers.

Im Hintergrund =
Zu allen anderen Zeitpunkten werden die Richtlinien "Im Hintergrund" angewendet.

Seit Windows XP beschleunigt eine neue Option names "Fast Logon Optimization" das Booten und Anmelden.
Allerdings hat dies negative Auswirkungen auf die Anwendung von Gruppenrichtlinien. Fast Logon lässt sich mittels dieser Einstellung deaktivieren:


http://gpsearch.azurewebsites.net/#1839


Zusätzlich sollte auch noch das Anmeldeverhalten geändert werden:


http://gpsearch.azurewebsites.net/#2302


(genau genommen beeinflussen sich technisch beide Richtlinieneinstellungen)

Die Deaktivierung der "Fast Logon Optimization" ist eine sinnvolle Sache.
Jedoch kann dies Verzögerungen im Start- und Anmeldeprozess des Rechners verursachen. Bevor die Policies abgearbeitet werden können, arbeitet die GPSVC-Engine mit dem Dienst NLA (Network Location Awareness) zusammen.

Es wird sichergestellt, dass das Netzwerk erfolgreich initialisiert wurde, bevor die Richtlinien abgearbeitet werden.
Treten in diesem Zusammenhang Fehler auf, so sollte nicht einfach die Fast Logon Optimization wieder aktiviert werden, sondern man sollte der Ursache des Problems auf den Grund gehen.


Hierzu können Ursachen gehören wie:

  • Netzwerktreiber die während des Bootvorgangs eine lange Zeit zum Initialisieren benötigen
  • WLAN Verbindungen mit gleichzeitigen LAN Verbindungen die den NLA Dienst beschäftigen
  • Falsch konfigurierte Switche (Portfast nicht aktiviert)
  • Firewalleinstellungen blockieren den Netzwerk-Traffic während des Bootens
Wie kann man feststellen ob Richtlinieneinstellungen angewendet werden?
Ist der Fehler noch nicht im Detail bekannt, sollte man zunächst einmal überprüfen ob der Client die Einstellungen anwendet.
Diese Methode bezieht sich ebenfalls auf die Logikfehler von Teil 1 des Guides.

Die meisten Tools beziehen ihre Daten mittels des RSoP (Resultant Set of Policies). Dieser ermittelt die benötigten Daten per WMI (Windows Management Instrumentation).

Tipp:
Den genauen Prozess findet ihr hier.
Die wichtigsten Tools:
  • rsop.msc - Hierbei handelt es sich um ein MMC-SnapIn, das die Daten des RSoP ermittelt. Rsop.msc ist allerdings nicht auf dem aktuellen technischen Stand. Das SnapIn kann keine Daten der Group Policy Preferences anzeigen. Die Darstellung orientiert sich am Group Policy Editor.
  • gpresult /r - Es handelt sich um ein Kommandozeilentool welches die angewendeten und abgelehnten Richtlinien anzeigt.
  • gpresult /h - Es wird ein html-Bericht generiert. Diese Methode sollte die Standardmethode zum Ermitteln der GPO-Daten sein. Es handelt sich um eine Kombination aus gpresult /r und rsop.msc. Der Vorteil: Hier werden auch Daten der Preferences angezeigt.
  • GPMC - Gruppenrichtlinienergebnisse
  • Die GPMC bietet ebenfalls die Möglichkeit einen RSoP remote zu erstellen.
    Zu beachten ist allerdings, dass hierzu am Client einige Firewallausnahmen definiert werden müssen.
    Wo finde ich GPO-Eventlogs?
    Die erste Anlaufstelle sollte immer das Eventlog sein.
    Die verschiedenen Events finden sich primär in diesen Kategorien:

    • Anwendung (vereinzelt)
    • System 
    • Anwendungs- und Dienstprotokolle > Microsoft > Windows > GroupPolicy (ab Windows Vista verfügbar) Das letzte Log ist hierbei am umfangreichsten:

     

    Der Eventviewer von Windows XP und Server 2003 besitzt noch keine Anwendungs- und Dienstprotokolle.
    Tipp:
    Mehr Informationen findet ihr hier.

    Welche Logfiles werden geschrieben?
    Zunächst einmal werden keine Logfiles geschrieben. Im Problemfall muss das Logging aktiviert werden.

     

    Logging des Gruppenrichtliniendienstes:
    Hierbei handelt es sich um das Logfile der GPSVC-Engine.
    Dieses Logfile ist als Zusammenfassung der verschiedenen Client Side Extensions zu sehen. Das Logfile ist relativ umfangreich und lässt sich am besten mit dem Tool "Policy Reporter" auswerten.
     

    www.sysprosoft.com/policyreporter.shtml 

    Das Programm ist kostenlos und wertet unter anderem die Zeitdauer einzelnen Prozessschritte aus.
    Tipp:
    In meinem Post "Das gpsvc-logging aktivieren" erfahrt ihr wie ihr das Logging aktiviert.

    Unter Windows XP und Server 2003 gibt es noch kein gpsvc.log.
    Dort lässt sich das userenv-logging aktivieren.
    Dieses wird allerdings nicht nur für Fehlerdiagnose der Gruppenrichtlinienanwendung verwendet, sondern hat noch andere Funktionen und lässt sich deshalb schlechter auswerten.
     

    Der Policy Reporter kann mit beiden Logdateien umgehen.
     

    Fehler beim Anwenden von Sicherheitseinstellungen:
    Fehler beim Abarbeiten von Sicherheitseinstellungen (Berechtigungen auf Registry Schlüssel, Dateien, Diensten, Vergabe von Benutzerrechten usw.) werden in einer separaten Logdatei festgehalten.
    Das File befindet sich unter %SYSTEMROOT%\security\logs\winlogon.log.


    http://support.microsoft.com/kb/324383/de 

    Fehler innerhalb der GPMC:
    Treten Fehler in der GPMC beim Erstellen oder Ändern von Richtlinien auf, so kann das GPMC-logging aktiviert werden.


    http://technet.microsoft.com/en-us/library/cc737379%28v=ws.10%29.aspx
    Tipp:
    Eine umfangreiche Liste der Logfiles findet ihr hier.

    Wie kann das Verhalten einzelner CSEs analysiert werden?
    Neben den einzelnen Logfiles (wie oben genannt) werden auch noch Einträge für diverse CSEs im Eventlog geschrieben.




    Für die Client Side Extension der Group Policy Preferences können einzelne Logfiles geschrieben werden. Diese nennen sich "Tracing-Files" und können wie folgt aktiviert werden.


    http://blogs.technet.com/b/askds/archive/2008/07/18/enabling-group-policy-preferences-debug-logging-using-the-rsat.aspx

    Exotische GPO Tools?
    Es gibt noch etliche mehr oder weniger bekannte GPO Tools.

    Diese können im speziellen Falle hilfreich sein, jedoch würde ich diese Tools nicht überbewerten. Viele dieser Tools werden nicht weiterentwickelt und sind veraltet. 

      • Dcgpofix.exe
        Damit lassen sich die Default Policies der Domäne wiederherstellen.
      • GPMonitor.exe
        Der GPMonitor sammelt Daten über die Anwendung von Richtlinien und kann diese an einer zentralen Stelle im Netzwerk speichern.
      • GPOTool.exe
        Vergleicht die SYSVOL und AD Versionen auf allen DCs.
      • GPLogView
        Kann ab Windows Vista eingesetzt werden. Das Tool sammelt Informationen aus dem Eventlog. Sehr interessant ist auch die Möglichkeit "live" zu loggen. (Option -m)
      • GPMC-Skripte
        Backup, Restore, Importieren, Exportieren uvm.

        GPOBackup.VBS - einfach, schnell, zuverlässig

        $
        0
        0
        Backup ja, aber einfach bitte!
        MVP Kollege Martin Binder hat in seinem Blog ein GPO-Backup Skript veröffentlicht. Das Skript ist super einfach zu konfigurieren und bietet einem viele Features die andere Skripte nicht aufweisen.

        Hier eine Übersicht der möglichen Optionen:
        cscript GPOBackup.VBS [/CreateShare:0] [/BackupDirectory:] [/BackupShare:] [/ForceBackup] [/RetentionMethod:age|count] [/RetentionCount:] [/L:] [/EventLogName:] [/EventSource:]

        Ich kann euch nur raten, richtet euch das Skript ein, lasst es laufen und ihr müsst euch keine Gedanken mehr über das Thema GPO-Backup machen.

        Hier der Link zum Blog-Artikel:
        http://evilgpo.blogspot.de/2012/12/backup-nur-fur-feiglinge-oder-auch-fur.html

        Internet Explorer 10: Goodbye my friend "Internet Explorer-Wartung"

        $
        0
        0
        Nachdem der Internet Explorer 10 nun seit geraumer Zeit offiziell zur Verfügung steht, wird ein Problem welches die "Internet Explorer-Wartung" betrifft immer bekannter.

        IEM - aus und vorbei
        Die "Internet Explorer-Wartung" (IEM = Internet Explorer Maintenance) Erweiterung ist ein Relikt aus alten Zeiten. Leider war diese CSE nie für ihre Zuverlässigkeit bekannt. Mit dem Erscheinen von Windows 8 und Server 2012 wird diese Erweiterung nun offiziell nicht mehr unterstützt. Konfiguriert man unter Windows 8 (oder Server 2012) eine Gruppenrichtlinie, so versucht man vergebens diese Einstellung zu finden.


        Dieses Verhalten kann man als "wie erwartet" bezeichnen.

        Installiert man allerdings den Internet Explorer 10 auf einem Client der mit den Einstellungen dieser CSE jedoch noch umgehen kann (z.B. Windows 7, Server 2008 R2), so verliert man dort ebenfalls die Option eine Gruppenrichtlinie zu bearbeiten, die Internet Explorer-Wartungs-Einstellungen enthält. Gleiches gilt für die Erzeugung neuer Richtlinien die IEM-Einstellungen enthalten sollen.


        Fakten zu IEM + IE 10


        Auf Windows 8 und Server 2012,
        • können keine IEM-Einstellungen bearbeitet werden.
        • können keine neue Richtlinien angelegt werden die IEM-Einstellungen enthalten.
        • werden keine Richtlinien angewendet die IEM-Einstellungen enthalten.  
        Auf Windows Vista, 7 und Server 2008 R2mit IE 8 oder IE 9,
        • können IEM-Einstellungen bearbeitet werden.
        • können neue Richtlinien angelegt werden die IEM-Einstellungen enthalten.
        • werden Richtlinien angewendet die IEM-Einstellungen enthalten. 
        Auf Windows 7 und Server 2008 R2 mit IE 10,
        • können keine IEM-Einstellungen bearbeitet werden.
        • können keine neue Richtlinien angelegt werden die IEM-Einstellungen enthalten.
        • werden keine Richtlinien angewendet die IEM-Einstellungen enthalten.
        • kann das vorherige Verhalten nur mit der Deinstallation von IE 10 erreicht werden.

        Der große Group Policy Troubleshooting Guide - Teil 3/3

        $
        0
        0
        Teil 1 behandelte vor allem logische Fehler im Umgang mit Gruppenrichtlinien.
        Teil 2
        befasste sich mit technischen Fehlern und Tools mit denen die Abarbeitung von Richtlinien überprüft werden kann.

        Der letzte Teil des GPO Troubleshooting Guides behandelt das Thema "GPO Performance."

        Inhalt:
        • Welche Timeouts können beim Abarbeiten von Policies auftreten?
        • Wie lassen sich erhöhte Laufzeiten von Policies erkennen?
        • Welche CSEs können erhöhte Laufzeiten verursachen?
        • Wie wirkt sich das Policy- und AD Design auf die Laufzeit der GPOs aus?
        • Wie wirkt sich Group Policy Loopback auf die Laufzeit der GPOs aus? 
        • Wie wirkt sich die Anzahl der GPOs auf die Laufzeit aus?
        Welche Timeouts können auftreten?  
        Im Laufe der Gruppenrichtlinienabarbeitung können verschiedene Timeouts auftreten. Da insbesondere bei der synchronen Richtlinienanwendung unendliche Start- und Anmeldezeiten verursacht werden könnten, sind diese Timeouts als Sicherheitsmechanismus anzusehen.

        Der 60 Minuten Timeout: 
        Diese maximale Zeitspanne lässt sich nicht konfigurieren. Es handelt sich um einen hartcodierten Wert von genau60 Minuten. Ist eine Client Side Extension nach dieser Zeitspanne mit der Anwendung der Einstellungen nicht fertig, so wechselt die GPO-Engine in den asynchronen Modus.Dies bedeutet nichts anderes, als dass der Start- bzw. Anmeldeprozess fortgeführt wird.
        Die restlichen Richtlinien werden (wenn möglich) im Hintergrund abgearbeitet.
        Die betreffende CSE wird jedoch nicht beendet, sondern läuft ebenfalls im Hintergrund weiter. 60 Minuten ist ein größzügig bemessener Timeout.
        Eine CSE die definitiv in diesen Timeout laufen kann, ist die "Software Installation" CSE. Dauert eine Softwareinstallation länger als 60 Minuten,
        so tritt dieses Verhalten ein.


        Beim Neustart des Computers und bei der Anmeldung immer auf das Netzwerk warten:
        Diese Richtlinie kennen wir bereits aus Teil 2.
        Die Beschreibung der Richtlinie lässt vermuten, dass so lange auf das Netzwerk gewartet wird, bis dieses verfügbar ist. Dem ist jedoch nicht so.

        Es gilt ein Standard Timeout von 30 Sekunden. Dieser kann mit dieser Richtlinie allerdings geändert werden: 
        "Wartezeit für Richtlinienverarbeitung beim Systemstart angeben"
        Es kann zusätzlich noch eine separate Policy konfiguriert werden, die die maximale Wartezeit für DirectAccess Verbindungen definiert. Hier ist der Default 60 Sekunden. Leider ist der Name der Policy missverständlich. 

        "Wartezeit der Arbeitsbereichskonnektivität für Richtlinienverarbeitung angeben"

        Maximale Wartezeit für Gruppenrichtlinienskripts angeben:
        Dieser Timeout definiert die maximale Ausführungszeit der Skripte beim Starten, Anmelden, Abmelden und Herunterahren des Computers.
        Der Standardwert liegt bei 10 Minuten.
        Definiert man eine Wartezeit von 0 Sekunden, so bedeutet dies, unendlich.
        Zu beachten ist jedoch, dass die Skripte von keiner CSE ausgeführt werden.
        Das bedeutet, der Standard CSE Timeout von 60 Minuten gilt hier nicht.

        "Maximale Wartezeit für Gruppenrichtlinienskripts angeben"

        Gruppenrichtlinien zur Erkennung von langsamen Verbindungen
        Hierbei handelt sich nicht um einen zeitlichen Timeout, sondern vielmehr um eine Bandbreitenmessung. Wird eine langsame Netzwerkverbindung erkannt, so werden Teile der Gruppenrichtlinien nicht angewendet. 
        Hierbei handelt es sich um alle Client Side Extensions bei denen der Registrywert "NoSlowLink" auf 0x1 gesetzt wurde.
        Dieser Schlüssel befindet sich unter "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions" unterhalb des GUID der jeweiligen CSE


        Dies ist das Standardverhalten (Quelle TechNet): 

        Richtlinien, die standardmäßig angewendet werden: 
        • Registrierungseinstellungen (aus administrativen Vorlagen) müssen immer angewendet werden – dies kann nicht geändert werden
        • Sicherheitsrichtlinien müssen immer angewendet werden - dies kann nicht geändert werden)
        • EFS-Wiederherstellungsrichtlinie
        • IP-Sicherheit
        Richtlinien, die nicht angewendet werden:
        • Anwendungsbereitstellung
        • Skripts
        • Ordnerumleitung
        • Datenträgerkontingente
        Alle Verbindungen bei denen eine Bandbreite von weniger 500 KBit/s erkannt wird, gelten standardmäßig als "langsame Verbindung". 
        Beeinflusst kann dieser Wert mit dieser Policy werden:
        "Gruppenrichtlinien zur Erkennung von langsamen Verbindungen"

        Der WMI-Filter Timeout:
        Richtlinien können mit WMI Filtern verknüpft werden.
        Über die GPO-Performance im Zusammenhang mit WMI-Filtern habe ich bereits in meinem Post "The lies of GPOs! #4" berichtet.
        Noch vor Windows Vista (bzw. Server 2008) konnte ein WMI-Filter theoretisch unendlich lange ausgeführt werden. Dies hat man nun mit einem WMI-Timeout unterbunden. Dieser Timeout ist 30 Sekunden und kann nicht geändert werden.

        Dauert die Ausführung eines WMI-Filters länger als 30 Sekunden, so wird das Ergebnis mit "false" beantwortet. 
        Zwischenzeitlich findet man nun auch auch eine offizielle Erwähnung dieses Timeouts. Den Link hierzu findet ihr hier.

        GPP - nicht verfügbare Netzlaufwerke:
        Versucht man ein nicht verfügbares Netzlaufwerk mit der Client Side Extension "Drive Maps" zu verbinden, so tritt auch hier ein Timeout auf. 
        Dieser liegt ebenfalls bei 30 Sekunden und kann nicht geändert werden.
        Möchte man diesen Timeout jedoch umgehen, so kann man Martin Binder's Workaround benutzen.
        Mehr dazu findet ihr in seinem Blog-Post über dieses Thema:

        http://evilgpo.blogspot.de/2013/01/group-policy-preferences.html
         
        Der TCP Standard Timeout
        Abschließend sei noch ein Timeout erwähnt, der theoretisch bei unterschiedlichen Sektionen der Gruppenrichtlinienanwendung auftreten kann.

        Es handelt sich um den Standard Timeout für TCP/IP Verbindungen.
        Dieser Timeout wird von zwei Registryschlüsseln kontrolliert.
        Der Schlüssel "TCPInitialRtt" gibt den anfänglichen Timeout an.
        Der Schlüssel "TcpMaxDataRetransmissions" gibt dann die Anzahl der Wiederholversuche an. Mit jedem Wiederholversuch wird der Timeout "TCPInitialRtt" dann verdoppelt.
        Dieser Timeout ist leider schwer zu erkennen.
        Es sollten größere Zeitsprünge im gpsvc.log erkennen zu sein.

        Mehr zum Anpassen dieses Timeouts findet ihr hier: http://support.microsoft.com/kb/170359/en-us

        Wie lassen sich erhöhte Laufzeiten von Policies erkennen?

        Im Eventlog:

        Ab Windows Vista lassen sich die Laufzeiten der jeweiligen Client Side Extensions komfortabel im Eventlog ablesen.
        Interessieren euch die Laufzeiten der einzelnen Erweiterungen, dann solltet ihr nach Event-ID 5016 suchen.





        800x Events zeigen euch die Gesamtlaufzeit der GPO Anwendung.
        Dauert die Abarbeitung der jeweiligen CSE ungewöhnlich lange, so wird ein Fehler im Eventlog vermerkt. Die Event-ID ist dann in der Regel die 7016.

        Im gpsvc.log:
        Das Logfile des Gruppenrichtlinien-Clients muss zunächst aktiviert werden.
        Das Logfile lässt sich am komfortabelsten mit dem Policy Reporter auswerten.
        Zu beachten ist jedoch, dass nicht alle Ausführungszeiten im Logfile erscheinen.

        Die Laufzeiten der Skripte wird zum Beispiel nicht im Logfile erfasst.

        In der GPMC und im gpresult /h von Windows 8 und Server 2012:
        Über die Funktion "Gruppenrichtlinienergebnisse" können die Laufzeiten der jeweiligen CSEs angezeigt werden.



        Mit Hilfe von GPTime.exe
        Das Tool GPTime.exe liest die Gesamtlaufzeit der Benutzer- und Computerkonfiguration aus den jeweiligen Registrywerten und konvertiert diese in eine lesbare Zeitangabe.

        Welche CSEs können erhöhte Laufzeiten verursachen?
        Die Anwendung der Richtlinien besteht aus zwei Anteilen:

        Dem "Core Processing":
        Hierbei wird bestimmt, welche Richtlinien angewendet werden müssen.
        Es werden die Sicherheits- und WMI Filter durchlaufen.
        Zudem wird ermittelt welche CSEs registriert sind und welche CSEs aufgerufen werden müssen.

        Dem "CSE Processing":
        Hierbei werden die eigentlichen Einstellungen angewendet.
        Jede zutreffende CSE wird nach ihrer registrierten Reihenfolge ausgeführt
        und arbeit die Einstellungen ab.
        Die jeweils benötigte Zeitdauer dieser beiden Anteile kann variieren.  

        Bei asynchroner Richtlinenverarbeitung gilt:
        Bei einem nicht erzwungenen GPO Refresh (z.B. gpupdate) nimmt das Core Processing in der Regel mehr Zeit in Anspruch als das CSE Processing.
        Erzwingt man jedoch einen vollständigen Refresh (z.B. gpupdate /force),
        so müssen alle Einstellungen erneut angewendet werden.
        Hierbei nimmt das CSE Processing in der Regel mehr Zeit in Anspruch. 

        Bei synchroner Richtlinenverarbeitung gilt:
        Da in diesem Falle auf das Netzwerk gewartet wird, kann das Core Processing mehr Zeit benötigen. Wie lange das CSE Processing dauert, hängt in erster Linie von den Einstellungen in den Richtlinen ab. 
        Typische Beispiele für zeitintensive Client Side Extensions:
        • Software Installation CSE
          Je nachdem wieviele und wie umfangreiche Installationen ausgeführt werden, kann diese CSE viel Zeit beanspruchen.
        • Security CSE
          Mit dieser CSE lassen sich unter anderem Datei- und Ordnerberechtigungen setzen. Werden Verzeichnisse mit vielen Dateien bearbeitet, so kann diese CSE sehr viel Zeit in Anspruch nehmen.
        • Scripts CSE
          Hier muss man unterscheiden. Die eigentliche CSE ist sehr schnell abgearbeitet. Hierbei werden nur die Einstellungen in die Registry geschrieben. Die Skripte laufen dann unabhängig von der Richtlinenanwendung beim Starten, Anmelden, Abmelden und Herunterfahren. Sind hier zeitintensive Skripte hinterlegt, so kann auch hier eine hohe Ausführungszeit entstehen.
        Der Sonderfall Group Policy Preferences Item Level Targeting:
        GPPs (Group Policy Preferences) bieten einem die Möglichkeit eine sogenannte Zielgruppenadressierung (Item Level Targeting) zu verwenden. Mehr dazu auch im Abschnitt "Item Level Targeting - jetzt wird es granular" im Teil 1 des Guides.
        Der Sonderfall hierbei ist, dass das Filtern innerhalb des CSE Processings stattfindet. Hier können ebenfalls zeitintensive Filter hinterlegt sein.
        Zielgruppenadressierungen die viel Zeit in Anspruch nehmen können:

        • Sicherheitsgruppenziele
          Auf Computerebene kann diese viel Zeit beanspruchen.
          Auf Benutzerebene wird dies lokal ausgeführt und benötigt nur wenig Zeit.
        • LDAP-Abfrage 
        • Domäne
        • Siteziele
        • Organisationseinheit
        Tipp:
        Eine Liste der Zielgruppenadressierungen findet ihr hier.
        Mehr zum ThemaITLs die viel Zeit in Anspruch nehmen können findet ihr hier.
        Wie wirkt sich das Policy- und AD Design auf die Laufzeit der GPOs aus?
        Bei dem Thema möchte ich vor allem auf MVP Darren Mar-Elia's exzellenten Beitrag hinweisen.
         

        Er unterteilt Richtlinien in zwei Kategorien.
        "Monolithic and Functional GPOs".


        "Monolithic GPOs":
        Enthalten Einstellungen aus verschiedenen Gruppenrichtlinienbereichen (z.B. administrative Vorlagen, Sicherheitseinstellungen, Software Installationen).
        Da die Versionierung nur pro Computerkonfiguration und Benutzerkonfiguration besteht, so müssen im Zweifelsfalle bei einer Änderung alle Einstellungen erneut angewendet werden. Die Delegierung (Zugriffsrechte) an einzelne Administratoren gestaltet sich hier schwierig, da dies ebenfalls nur pro Richtlinie möglich ist.
        Um ein einfaches Beispiel zu nennen:
        In einem großen Unternehmen gibt es Administratoren die nur administrative Vorlagen verwalten. Verwendet man nun "Monolithic GPOs", so könnten diese Administratoren mit ihren Zugriffsrechten auch andere Richtlinien Einstellungen (z.B. Skripte) bearbeiten.
        "Functional GPOs":

        Enthalten Einstellungen aus speziellen Bereichen (z.B. nur administrative Vorlagen). Hierbei besteht das beschriebene Problem mit der Versionierung nicht. Jedoch führt dies unweigerlich zu einer großen Anzahl von Richtlinien. Diese Richtlinien können jedoch aufgrund ihrer Granularität besser an einzelne Administratoren delegiert werden.

        Wie wirkt sich Group Policy Loopback auf die Laufzeit der GPOs aus? 
        Group Policy Loopback kann in zwei verschiedenen Modi ausgeführt werden,
        Merge und Replace.


        Loopback Merge:
        Hierbei entstehen zwei GPO Durchläufe.
        Der erste Durchlauf läuft wie gewohnt ab, die Benutzereinstellungen werden anhand der Position des Benutzerobjekts im Active Directory abgearbeitet.
        Ist dieser Prozess abgeschlossen, wird der Suchfilter geändert.
        Nun startet ein zweiter Durchlauf, hierbei ist allerdings die Position des Computerobjekts im Active Directory entscheidend.
        Zum Verständnis noch einmal, es geht nur um die Anwendung der Benutzereinstellungen.Loopback Merge verdoppelt die Abarbeitungszeit der Richtlinien nahezu. 

        Loopback Replace:
        Bei Replace ist nur noch die Position des Computerobjekts entscheidend.
        Es gibt nur einen Durchlauf. Loopback Replace hat praktisch keine Auswirkungen auf die Abarbeitungszeit der Richtlinien.


        Wie wirkt sich die Anzahl der GPOs auf die Laufzeit aus?
        Die Antwort ist kurz und knapp: Geringfügig.
        Die Anzahl der Richtlinien istkaum entscheidend. Die Ausführungszeit wird vielmehr von den Einstellungen der Policies und den Filtern, die mit den Policies verknüpft sind, beinflusst.

        Sicherheitseinstellungen für Systemdienste werden nicht übernommen

        $
        0
        0
        Heute wieder eine ganz besondere Konstellation.
        Es gibt ein unerwartetes Verhalten der Security CSE beim Setzen von ACLs (Access Control Lists) für Systemdienste.

        Bevor wir jedoch zum eigentlichen Problem kommen, hier erst ein paar Hintergrundinformationen.

        So funktioniert die Security CSE:

        In den Gruppenrichtlinien lassen sich unter anderem Sicherheitseinstellungen für Systemdienste definieren.




        Diese Einstellungen werden in der Datei GptTmpl.inf gespeichert.

        Diese Datei befindet sich unter:

        \\domain.intern\sysvol\domain.intern\Policies\{GUID}\Machine\Microsoft\Windows NT\SecEdit


        Die ACLs werden jedoch nicht direkt von diesem File aus angewendet, sondern es werden zunächst alle Richtlinien gesammelt, die Sicherheitseinstellungen enthalten.

        Dieser Cache liegt im Verzeichnis %systemroot%\security\templates\policies.

        Dort werden verschiedene *.dom und *.inf Dateien abgelegt.

        Anwenden von mehreren Policies die Sicherheitseinstellungen enthalten


        Nun zum eigentlichen Problem. 
        Nehmen wir an, wir haben eine OU auf der zwei Richtlinien verlinkt sind.
        Richtlinie 2 hat eine höhere Priorität als Richtlinie 1.
        Richtlinie 2 wird also später verarbeitet als Richtlinie 1.

        Richtlinie 1 enthält diese Einstellungen:
         



        Richtlinie 2 enthält diese Einstellungen:




        Da Richtlinie 2 keine Sicherheitseinstellungen enthält, sollten eigentlich die Einstellungen von Richtlinie 1 angewendet werden.
        (Gruppe JEDER Zugriff verweigern)


        Sichtbar ist dies auch im RSoP (Resultant Set of Policies).

        Das ist jedoch nicht der Fall. Die Sicherheitseinstellung des genannten Dienstes werden nicht angepasst

        Richtlinien die also Sicherheitseinstellungen für Dienste enthalten, müssen immer höher priorisiert sein als Richtlinien die keine Sicherheitseinstellung enthalten.

        Möchte man nur den Starttyp definieren, sollte man dies nach Möglichkeit mittels Group Policy Preferences lösen.




        Windows 8: Laufwerkszuordnungen von Unterordner schlagen fehl

        $
        0
        0
        Unter Windows 8 gibt es einen Bug, der beim Mappen von Laufwerksverbindungen auftritt. Das Problem äußert sich darin, dass Laufwerke deren Ziel Unterordner sind nicht korrekt gemapped werden. 

        Beispiel:
        Per Preference wurde das hier definiert:
        Laufwerk M: = \\server\share\subfolder\subfolder


        Das Laufwerk wird jedoch wie folgt gemappt:
        Laufwerk M: = \\server\share


        Die Unterverzeichnisse werden komplett ignoriert.

        Es war bereits ein ähnliches Problem bekannt, bei dem auch nicht korrekt
        gemappt wurde. Jedoch tritt dies nur auf, wenn ein sogenannter "trailing slash" im Pfad enthalten ist.

        siehe hier

        In diesem konkreten Beispiel (Windows 8 und Server 2012) hat dies jedoch nichts mit dem Problem zu tun.

        Problemzusammenfassung:
        • Die Netzlaufwerke werden mit NET USE immer korrekt angezeigt, unabhängig von einer elevated Shell.
        • Startet man den Windows Explorer elevated, hat dieser die Netzlaufwerke ebenfalls korrekt gemappt.
        • Startet man den Windows Explorer non-elevated, zeigt er die Netzlaufwerke korrekt gemappt an, verweist aber auf den Root-Folder des Shares. 
        • Es werden Laufwerke von Win 2003 Servern (SP1) gemappt. 
        • Die Policy "EnableLinkedConnections" ist aktiv.
        • Im Trace steht die Meldung Failed to connect drive with restricted token.
          [ hr = 0x80070055 "The local device name is already in use." ] 
        • Die Laufwerke werden alle mit den folgenden Optionen gemappt: Replace, Non-Reconnect, Run in logged-on user's context, Remove this item when it is no longer applied
        • Das Problem wurde auch im Microsoft Case "113021910228246" erfasst

        Der Workaround:

        Der einzig bekannte Workaround ist das Deaktivieren dieser Policy.
        Der Wert muss auf "0" gesetzt werden.

        Achtung, das Problem tritt nur bei Windows 8 auf. Der Key sollte auch nur bei Windows 8 auf "0" gesetzt werden.
        Der Key kann natürlich bequem per Group Policy Preferences Registry mit einem Item Level Targeting gesetzt werden.

        Microsoft hat den offiziellen Artikel zum Thema "EnableLinkedConnections" geändert. Der neue Artikel scheint mir wenig hilfreich.

        Das Problem sollte jedoch nicht mit dem eigentlichen Zweck des Keys "EnableLinkedConnections" verwechselt werden (bei dem der Key auf "1" gesetzt werden muss).


        Ursprünglicher Zweck des Schlüssels: 
        If a user is logged on to Windows Vista or to Windows 7, and if User Account Control is enabled, a program that uses the user’s filtered access token and a program that uses the user’s full administrator access token can run at the same time. Because LSA created the access tokens during two separate logon sessions, the access tokens contain separate logon IDs.
        siehe auch

        Noch mehr Hintergrundinfos findet ihr in diesem Thread.
        Sollte es neue Informationen zu diesem Problem geben, findet ihr das hier.

        Update 26.07.2013:
        Setzt man den Schlüssel "EnableLinkedConnections" auf "0", bootet den Client und meldet einen Benutzer an, dann funktioniert es für dieses Benutzerprofil.
        Egal ob der Key danach wieder auf "1" gesetzt wird.
        Wird jedoch das Benutzerprofil gelöscht oder ein Benutzer meldet sich an, der noch kein Benutzerprofil hat, so tritt der Fehler unter diesem User auf.


        Das Problem tritt nicht wie oben angekündigt nur unter Group Policy Preferences auf, sondern auch wenn man zum Mappen das WSH(Windows Scripting Host) Object verwendet.

        Vielen Dank an Martin Binder (Group Policy MVP) für diese zusätzlichen Informationen.

        Powershell Skript zur Gruppenrichtlinien-Verarbeitung

        $
        0
        0
        Events und Verarbeitungszeiten einfach auslesen 

        Michael Köppl hat ein sehr komfortables Skript für die Analyse der Gruppenrichtlinien-Verarbeitung erstellt.

        Das Skript erschien als Gastbeitrag im AD-Blog.

        Execution Policy anpassen:
        Da das File nicht signiert ist, müsst ihr zunächst eure
        Powershell-Execution-Policy umstellen:

        Set-ExecutionPolicy Unrestricted

        Danach könnt ihr das Skript wie folgt ausführen:

        .\GPAnalyser.ps1 -Analyse
        .\GPAnalyser.ps1 -Analyse -Computer <MyComputer>
        .\GPAnalyser.ps1 -Analyse -Computer <MyComputer> -ShowLastHours 24


        Natürlich könnt ihr auch das Skript signieren.
        Signing PowerShell Scripts

        Hier noch ein paar Screenshots:





        Hier der Link zum vollständigen Artikel:
        http://blogs.technet.com/b/deds/archive/2013/08/19/powershell-script-zur-gruppenrichtlinien-verarbeitung.aspx

        Windows Update: Fehler "0x80072ee2" unter Windows 8 - Dienst reagiert nicht mehr

        $
        0
        0
        In Windows 8 gibt es ein Verhalten, dass den Windows Update Dienst (wuauserv) zum Absturz bringen kann.

        Für den wuauserv lässt sich ein Proxy-Server konfigurieren.
        Standardmäßig ist jedoch kein Proxy für den Dienst gesetzt.

        Die wuauserv Proxy-Einstellung:
        Die Konfiguration kann mit diesem Befehl angezeigt werden:
         

        netsh winhttp show proxy

        Im Normalfall erscheint dann diese Config:


         Current WinHTTP proxy settings:

            Direct access (no proxy server).


        Sucht ihr online nach Updates, werden die Proxy-Einstellungen des Internet Explorers verwendet.



        Wenn ihr einen WSUS-Server konfiguriert habt, wird jedoch die Einstellung die
        mittels "netsh winhttp ..." angezeigt wird, verwendet.

        Fehler unter Windows 8:
        Ist kein Proxy konfiguriert unter Windows 8 und man besitzt jedoch keine direkte Internetverbindung, so kann es passieren, dass die Suche nach Windows Updates nicht abgeschlossen werden kann:

        Im Logfile "C:\Windows\WindowsUpdate.log" erscheinen diese Einträge:

        2013-09-03    07:58:21:157     900    e30    Misc    WARNING: Proxy List used: <(null)> Bypass List used : <(null)> Auth Schemes used : <None>
        2013-09-03    07:58:21:157     900    e30    Misc    WARNING: Send request failed, hr:0x80072ee2
        2013-09-03    07:58:21:157     900    e30    Misc    WARNING: WinHttp: SendRequestUsingProxy failed for <http://ds.download.windowsupdate.com/w8/2/windowsupdate/redir/wuredir.cab>. error 0x80072ee2
        2013-09-03    07:58:21:157     900    e30    Misc    WARNING: WinHttp: SendRequestToServerForFileInformation MakeRequest failed. error 0x80072ee2
        2013-09-03    07:58:21:157     900    e30    Misc    WARNING: WinHttp: SendRequestToServerForFileInformation failed with 0x80072ee2
        2013-09-03    07:58:21:157     900    e30    Misc    WARNING: WinHttp: ShouldFileBeDownloaded failed with 0x80072ee2
        2013-09-03    07:59:03:198     900    e30    Misc    WARNING: Send failed with hr = 80072ee2.
        2013-09-03    07:59:03:198     900    e30    Misc    WARNING: Proxy List used: <(null)> Bypass List used : <(null)> Auth Schemes used : <None>
        2013-09-03    07:59:03:198     900    e30    Misc    WARNING: Send request failed, hr:0x80072ee2
        2013-09-03    07:59:03:198     900    e30    Misc    WARNING: WinHttp: SendRequestUsingProxy failed for <http://ds.download.windowsupdate.com/w8/2/windowsupdate/redir/wuredir.cab>. error 0x80072ee2
        2013-09-03    07:59:03:198     900    e30    Misc    WARNING: WinHttp: SendRequestToServerForFileInformation MakeRequest failed. error 0x80072ee2
        2013-09-03    07:59:03:198     900    e30    Misc    WARNING: WinHttp: SendRequestToServerForFileInformation failed with 0x80072ee2
        2013-09-03    07:59:03:198     900    e30    Misc    WARNING: WinHttp: ShouldFileBeDownloaded failed with 0x80072ee2
        2013-09-03    07:59:03:198     900    e30    Misc    WARNING: DownloadFileInternal failed for http://ds.download.windowsupdate.com/w8/2/windowsupdate/redir/wuredir.cab: error 0x80072ee2
        2013-09-03    07:59:24:558     900    e30    Misc    WARNING: Send failed with hr = 80072ee2.


        Bei der angegebenen Datei (http://ds.download.windowsupdate.com/w8/2/windowsupdate/redir/wuredir.cab) handelt es sich um ein File, dass für den Windows-Store benötigt wird.

        By design:

        Nach ca. 8 Wochen Kontakt mit dem Microsoft Support lautet die finale Aussage:
        By Design. D.h. "das ist einfach so".
        Die Case Nummer hierzu lautet: 113070910573485

        Workaround?
        Mit der Fehlermeldung im Logfile könnte man sicherlich leben.
        Dass jedoch sich teilweise der Windows Update Dienst verabschiedet, ist sehr unschön (und zumdem ein Sicherheitsrisiko).

        Um die Funktion des Dienstes zu gewährleisten, gibt es also zwei sinnvolle Lösungen:
        1. Einen Proxy-Server mittels "netsh winhttp" konfigurieren und den Download ermöglichen + Eine Proxyausname für den WSUS-Server definieren.
        2. Einen Proxy-Server mittels "netsh winhttp" konfigurieren und den Download am Proxy-Server sperren + Eine Proxyausname für den WSUS-Server definieren.
        Gesetzt werden kann dieser Proxy mit diesen Befehlen:

        netsh winhttp set proxy myproxy:80 "*.domain.intern"
        (es kann natürlich auch nur explizit der WSUS-Server ausgeschlossen werden) 
        oder
        netsh winhttp import proxy source =ie  
        Geht das nicht eleganter?
        Wir sind ja hier im GPO-Blog. Deshalb lautet die Antwort: Ja :-)

        Diese Einstellung wird in einem Registry-Binary gespeichert.
        Dieser befindet sich unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections und nennt sich "WinHttpSettings".

        Ihr könnt also Group Policy Preferences Registry benutzen um diesen Schlüssel zu setzen:



        Jetzt noch eine Zielgruppenadressierung setzen und fertig:



        DHCP Bereiche mittels Group Policy überwachen

        $
        0
        0
        Jeder DHCP-Bereich umfasst eine definierte Anzahl an IP-Adressen. 
        Ist dieser Bereich erschöpft, so können keine weiteren Adressen mehr vergeben werden. Das passiert meistens dann, wenn man am wenigsten damit rechnet.
        Für den User hat das den unschönen Effekt, dass der Client zwar mit dem Netzwerk verbunden ist, aber aufgrund der fehlenden IP-Adresse nicht mit den anderen Clients / Servern kommunizieren kann.

        Das MMC-Snapin
        Der Microsoft DHCP-Server notiert dies im DHCP Snapin mit verschiedenen Warnsymbolen. Eine Liste aller Symbole incl. ihrer Bedeutung findet ihr hier:

        http://technet.microsoft.com/en-us/library/cc784812%28v=ws.10%29.aspx


        Diese Warnsymbole kann man leicht übersehen. Hat man nicht ständig das DHCP-Snapin geöffnet, wird man im Zweifelsfalle nicht sehen, dass ein
        DHCP-Bereich erschöpft ist.



        Event 1020 - an Ereignisse geknüpfte Aktionen
        Zusätzlich zur Snapin Warnung wird im Eventlog ein Eintrag protokolliert.
        Dieser Eintrag hat die ID 1020.

        Diese Events können ab Windows Vista bzw. Server 2008 abonniert werden. 
        Eine ebenfalls neue Methode seit 2008 ist das Verknüpfen von Aktionen mit Events. Verknüpft man die Aktion "E-Mail senden" mit dem Event 1020, wird jedes Mal beim Auslösen dieses Events eine Mail gesendet.

        Wir erhalten eine Mail sobald ein Bereich eine gewisse Schwelle an benutzten Adressen überschreitet, wissen jedoch noch nicht um welchen Bereich es sich handelt. Bei einem DHCP-Server mit vielen Bereichen ist diese Information nicht sehr hilfreich.

        PowerShell Skript

        Die Aktion die an das Event geknüpft ist, kann auch die Ausführung eines Programms / Befehls sein. Wenn das passende Skript vorhanden ist, können umfangreichere Informationen verarbeitet werden.

        $eventList = @()
        Get-EventLog -LogName System -After (get-date).AddHours(-1) -Source DhcpServer -InstanceId 1020 | where-object  {$_.Message -notlike "*10.110*"}
        | foreach-Object {
        $row = "" | Select ScopeAddress, Utilization, FreeIPAddresses
        $row.ScopeAddress = $_.ReplacementStrings[0]
        $row.Utilization= $_.ReplacementStrings[1]
        $row.FreeIPAddresses = $_.ReplacementStrings[2]
        $eventList += $row
        $FoundEvent="True"
        }

        $messageParameters = @{
        Subject = "DHCP Scope Utilisation Report " + $env:COMPUTERNAME + " - $((Get-Date))"
        Body = $eventList | Sort Utilization -Descending |
        ConvertTo-Html |
        Out-String
        From = "DHCP-ALERT@domain.com"
        To = "dhcp-alert@domain.com"
        SmtpServer = "MAILSERVER"
        }

        if ($FoundEvent -eq "True")
        {
            Send-MailMessage @messageParameters -BodyAsHtml
        }


        Das Skript führt eine Abfrage auf das System Eventlog durch.
        Es werden alle Ereignisse mit der ID 1020 der letzten Stunde ausgelesen.

        Diese Events werden dann per Mail an die angegebene Adresse gesendet.

        Um nach Bedarf Bereiche auszuschließen, habe ich das Skript etwas modifiziert.
        Bereiche (bzw. Textpassagen im Detailtext des Events) können in dieser Zeile vom Mailversand ausgeschlossen werden:

        where-object  {$_.Message -notlike "*10.110*"}


        In diesem Falle werden also alle Events ausgeschlossen, die "10.110" im Detailtext des Events enthalten.
         
        Konfiguration per Gruppenrichtlinie verteilen
        Wir haben nun gelernt, dass wir Aktionen an Ereignisse binden können.
        Wir haben auch das dazugehörige Skript um diese Informationen per E-Mail zu versenden. Diese Lösung muss manuell an jedem DHCP-Server konfiguriert werden. Nun kommt das Thema Gruppenrichlinien ins Spiel.

        Mit einer Kombination aus verschiedenen Group Policy Preferences und Item Level Targetings lässt sich diese Lösung ganz schnell und einfach an alle DHCP-Server verteilen.

        Hier die Schritte die dafür nötig sind:

        1. Schritt - GPO
        Eine neue GPO erstellen

        2. Schritt - Hilfsvariable
        Um nicht ständig die Registry abzufragen, erstellen wir uns eine Hilfsvariable.
        In diesem Falle "ISDHCPSERVER".




        Damit die Variable nur bei den DHCP-Server auf "TRUE" gesetzt wird, müssen wir ein Item Level Targeting (Zielgruppenadressierung) verwenden. 
        In diesem Falle wird der Starttyp des Dienstes "DHCPServer" abgefragt.
        Genau genommen ist dies natürlich noch keine Garantie dass auf dem Server ein Adresspool angelegt und aktiviert ist. In der Regel ist dies jedoch der Fall.

        Es können natürlich auch andere ILT verwendet werden.




        Bei jedem DHCP-Server der diese Kriterien erfüllt, wird also fortan die Variable "ISDHCPSERVER" erstellt und auf "TRUE" gesetzt.
        Damit dies wieder rückgängig gemacht wird (falls z.B. die DHCP Rolle deinstalliert wird), müssen wir diese Option noch aktivieren:



        3. Schritt - Kopieren des Skripts
        Als nächstes müssen wir das Skript auf jeden zutreffenden Server kopieren.
        Das lässt sich ebenfalls mittels Group Policy Preferences realisieren.
        Wir nutzen also GPP Files.



        Hier verwenden wir die Hilfvariable als Targeting.



        4. Schritt - Anlegen der geplanten Aufgabe




        Zusätzlich verwenden wir hier das ILT auf die Variable "ISDHCPSERVER" und aktivieren die Option "Element entfernen, wenn es nicht mehr angewendet wird".

        Hier noch der Inhalt der Batchdatei "dhcpreport.bat"

        %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe Set-ExecutionPolicy RemoteSigned
        %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe "C:\Batch\dhcpreport.ps1"

        %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe Set-ExecutionPolicy Restricted

        5. Schritt - Einstellen der Warnschwelle 
        Per Default wird das Event ab einer Bereichsauslastung von 80 % erzeugt.
        Dieser Threshold kann mit einem Registryschlüssel geändert werden.
        Auch hier verwenden wir wieder das gleiche ILT und die genannte Option zum Entfernen der Einstellung.


          
        Die genannte DHCP Überwachung in Kombination mit GPP funktioniert erst ab Windows Server 2008 R2.

        Group Policy Preferences und der Internet Explorer 11

        $
        0
        0
        Mit Windows 8.1 und Server 2012 R2 wurde auch eine neue Version der RSAT (Remote Server Administration Tools) bereitgestellt.

        Die neue GPMC dieser RSAT stellt einige (wenn auch geringfügige) neue Funktionen bereit. 

        Wichtige Änderungen (im Bezug auf GPPs):
        • "TCP/IP Printer" Preferences unterstützen nun auch IPv6
        • Das IP Address Range Targeting unterstützt nun auch IPv6
        • Die "VPN-Verbindung" der Netzwerkoptionen unterstützen nun IPv6
        Einigen wird aufgefallen sein, dass trotz neuen RSAT keine Group Policy Preferences für den IE 11 angeboten werden:
         



        Wie ich bereits in diesem Post berichtet habe, wird in der erzeugten XML Datei eine Versionsnummer gespeichert. Dieser Eintrag gibt die minimale und maximale Versionsnummer des IE an, für den diese XML Datei gelten soll.

        Erzeugt man eine "Internet Explorer 10" Preference, so wird der Eintrag max="99.0.0.0" in die XML Datei geschrieben.


        Folglich sind die IE 10 Preferences auch für den IE 11 gültig!
        Das bedeutet jedoch nicht, dass automatisch alle neuen Einstellungen des IE 11 in den IE 10 Preferences enthalten sind.


        ADMX Settings für den IE 11

        Für den IE 11 sind neue Administrative Vorlagen erschienen.
        Solltet ihr einen Central Store für eure ADMX Vorlagen verwenden, empfielt es sich diesen ggf. upzudaten. 

        Eine gute Anleitung hierfür findet ihr hier:
        http://www.gpanswers.com/how-to-make-the-ultimate-admx-central-store/

        Hier eine Übersicht der neu hinzugekommen ADMX Settings:
        http://www.microsoft.com/en-us/download/details.aspx?id=25250

        Jeremy's "Pak for Internet Explorer"

        MVP "Jeremy Moskowitz" hat einen "Pak for Internet Explorer" erstellt, der den Internet Explorer 11 unterstützt. Diese Software bietet zusätzliche Features, die mit den regulären Group Policy Preferences nicht realisierbar sind (z.B. das Ausblenden von ganzen IE Konfiguration-Tabs).

        Internet Explorer Maintenance
        Wie auch schon für den Internet Explorer 10 gilt "Internet Explorer Maintenance is dead". Diese CSE ist (völlig zurecht) ausgestorben und steht auch unter dem IE 11 nicht mehr zur Verfügung. Schaut euch auch bitte den vergangen Post für den IE 10 noch einmal an.

        Für den IE 11 gilt also weiterhin, man muss sich die passenden Einstellungen zusammensuchen. In der Regel ergibt dies einen Mix aus:
        • Internet Settings - Group Policy Preferences
        • IEAK - Internet Explorer Administration Kit
        • Registry - Group Policy Preferences
        • ADMX Settings für den Internet Explorer
        • Ggf. 3rd Party Tools (wie z.B. "PolicyPak")
        Update 06.12.2013

        Das ADMX Bundle für Windows 8.1 und Server 2012 R2 findet ihr hier:
        http://www.microsoft.com/en-US/download/details.aspx?id=41193
        Viewing all 44 articles
        Browse latest View live