GPO Sicherheitsfilterung mit Gruppen funktioniert nicht mehr / GPO Verarbeitung seit Update Juni 2016 MS16-072

The estimated reading time 4 minutes

Microsoft hat am 14.06.2016 ein kleines und unscheinbares Update herausgebracht, welches aber einige GPOs dieser Welt unwirksam machen dürfte. Siehe hierzu Link

Zitat:

MS16-072 changes the security context with which user group policies are retrieved. This by-design behavior change protects customers’ computers from a security vulnerability. Before MS16-072 is installed, user group policies were retrieved by using the user’s security context. After MS16-072 is installed, user group policies are retrieved by using the machines security context.

 

Zur Erklärung: dies betrifft im ersten Schritt nur Gruppenrichtlinien mit Sicherheitsfilterung auf Benutzerebene (also z. B. über Sicherheitsgruppen)

Siehe Screenshot

GPO-Sec-filtering01

Laut dem Microsoft Artikel werden die GPOs nun aber nicht mehr im Benutzerkontext ausgeführt sondern im Computerkontext, somit muss das Computerobjekt Leseberechtigungen auf die GPO haben. Dies kann im Delegation Tab überprüft werden.

GPO-Sec-filtering02

Wenn Sicherheitsfilterung auf einer GPO gesetzt ist, wird Authentifizierte Benutzer komplett entfernt und nur die Sicherheitsgruppe (also eine bestimmte Benutzergruppe) dürfen diese GPO lesen

Soviel zum Hintergrund.

Nun wollen wir wieder eine funktionierende GPO ebenfalls mit Sicherheitsgruppenfilterung.

Laut Microsoft kann nun Authentifizierte Benutzer wieder mit der Berechtigung lesen hinzugefügt werden (in Authentifizierte Benutzer sind auch alle Computerkonten hinterlegt siehe Artikel )

Danach sollte die GPO wieder funktionieren.

Bessere Methode:

Hinzufügen der Domänen-Computer Gruppe.

Zitat aus dem KB Artikel

Resolution

To resolve this issue, use the Group Policy Management Console (GPMC.MSC) and follow one of the following steps:

  • Add the Authenticated Users group with Read Permissions on the Group Policy Object (GPO).
  • If you are using security filtering, add the Domain Computers group with read permission.

Ach ja im Deutschen heißen die Gruppen:

Authentifizierte Benutzer

Domänencomputer

Hier gibt es auch eine Übersicht über die Standardgruppen.

 

Also muss an der entsprechenden GPO die Berechtigung hinzugefügt werden

Dazu bei Delegation-> Add

GPO-Sec-filtering03

GPO-Sec-filtering04

 

Nun sollte die GPO wieder funktionieren!

Wer nun mehrere hundert GPOs hat will dies natürlich nicht von Hand erledigen.

Ein Blogger hat hierzu ein Powershell Script erstellt, welches ich in meiner 2012R2 Umgebung bereits getestet habe.

Link: https://sdmsoftware.com/group-policy-blog/bugs/new-group-policy-patch-ms16-072-breaks-gp-processing-behavior/

Ich habe dieses Script verändert, sodass nicht mehr authentifizierte Benutzer hinzugefügt wird sondern  Domänen Computer

Englischer Domäne:

$allGPOs = get-gpo -all
foreach ($gpo in $allGPOs)
{
    # first read the GPO permissions to find out if Authn Users and Domain Computers is missing
    $perm1 = Get-GPPermission -Guid $gpo.id -TargetName "Authenticated Users" -TargetType group -ErrorAction SilentlyContinue
    $perm2 = Get-GPPermission -Guid $gpo.id -TargetName "Domain Computers" -TargetType group -ErrorAction SilentlyContinue
    if ($perm1 -eq $null -and $perm2 -eq $null) # if no authn users or domain computers is found, then add Domain Computers read perm
    {
        Set-GPPermission -Guid $gpo.Id -PermissionLevel GpoRead -TargetName "Domain Computers" -TargetType Group
        Write-Host $gpo.DisplayName "has been modified to grant Domain Computers read access"
    }

}

Deutsche Domäne Update hier hatte sich noch ein Fehler eingeschlichen, nicht Domänen-Computer sondern Domänencomputer ist nun aber korrigiert :

$allGPOs = get-gpo -all
foreach ($gpo in $allGPOs)
{
    # first read the GPO permissions to find out if Authn Users and Domain Computers is missing
    $perm1 = Get-GPPermission -Guid $gpo.id -TargetName "Authentifizierte Benutzer" -TargetType group -ErrorAction SilentlyContinue
    $perm2 = Get-GPPermission -Guid $gpo.id -TargetName "Domänencomputer" -TargetType group -ErrorAction SilentlyContinue
    if ($perm1 -eq $null -and $perm2 -eq $null) # if no authn users or domain computers is found, then add Domain Computers read perm
    {
        Set-GPPermission -Guid $gpo.Id -PermissionLevel GpoRead -TargetName "Domänencomputer" -TargetType Group
        Write-Host $gpo.DisplayName "has been modified to grant Domain Computers read access"
    }

}

Ich habe das Script auf einem DC in die ISE eingefügt und dann ausgeführt

GPO-Sec-filtering05

Ich freue mich über Kommentare und Anregungen.

Happy debugging.

Was this article helpful?
YesNo
0 0 votes
Article Rating
Abonnieren
Benachrichtige mich bei
guest
6 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Micha
Micha
7 Jahre zuvor

Super, ich wundere mich schon seit Monaten. Vielen Dank für diesen Beitrag!

Mario
Mario
8 Jahre zuvor

Hallo,

Du hast mir echt den Tag gerettet. Ich habe da 3 Stunden dran gesessen.
Das kommt davon wenn man nicht jedes Patch Release Note liest.

Marko
Marko
8 Jahre zuvor

Auch von mir DANKE schön.

damit konnten meine Richtlinien wieder sauber ihre Arbeit machen.

Rico
Rico
8 Jahre zuvor

Dankeschön

Vielen Dank für den guten Beitrag.

Volker
Volker
8 Jahre zuvor

Habe auch 2 Tage gesucht… Super Artikel!
Vielen Dank

Danke!!!!
Danke!!!!
8 Jahre zuvor

Meine Rettung!!!

Ich habe schon einige Stunden damit verbracht die Ursache herauszufinden, weshalb meine bestehenden GPO’s nicht mehr gezogen haben.

Vielen herzlichen Dank für den tollen Beitrag!