Los GPO no se aplican; motivo: inaccesible, vacío o deshabilitado; Server 2012 R2 y Windows 10

16

Tengo un dominio de Windows Server 2012 R2.

Ayer, la unidad de red de una computadora (con Windows 10 Pro) dejó de funcionar.

Después de una investigación más profunda ( gpresult /h) parece que TODOS los objetos de política de grupo están fallando con el motivo Inaccessible, Empty, or Disabled.

He confirmado que todos los GPO todavía existen y están habilitados en los controladores de dominio (redundantes y locales). Además, hay otras 20 máquinas en el mismo dominio y LAN sin ningún problema.

Sin embargo, hay otra computadora que probé que presentó el mismo problema. ¿Eso significa que el problema está en los servidores?

gpresult /rinforma que un cliente obtiene GPO del DC1 local y el otro del DC2. Por lo tanto, no es un problema relacionado con un DC específico.

gpupdate /force no solucionó nada (aunque afirmaba que se aplicaron políticas).

Traté de eliminar las entradas del registro para políticas locales (siguiendo esta guía /superuser/379908/how-to-clear-or-remove-domain-applied-group-policy-settings-after-leaving-the -hacer ) y reiniciar - mismo problema.

Encontré esta página de soporte de Microsoft ( https://support.microsoft.com/en-us/kb/2976965 ), pero afirma que solo se aplica a Windows 7 o clientes anteriores.

Todas mis máquinas (tanto el servidor como el cliente) están ejecutando versiones de 64 bits y están completamente actualizadas. Los he reiniciado todos para estar seguro.

Daniel
fuente
Gracias. Su comentario proporcionó la pista a la solución. Vea abajo.
Daniel

Respuestas:

19

Compruebe el parche joeqwerty link también .

Hay un detalle importante:

Problemas conocidos

MS16-072 cambia el contexto de seguridad con el que se recuperan las políticas de grupo de usuarios. Este cambio de comportamiento por diseño protege las computadoras de los clientes de una vulnerabilidad de seguridad. Antes de instalar MS16-072, las políticas de grupo de usuarios se recuperaban utilizando el contexto de seguridad del usuario. Después de instalar MS16-072, las políticas de grupo de usuarios se recuperan utilizando el contexto de seguridad de las máquinas. Este problema es aplicable para los siguientes artículos de KB:

  • 3159398 MS16-072: Descripción de la actualización de seguridad para la directiva de grupo: 14 de junio de 2016
  • 3163017 Actualización acumulativa para Windows 10: 14 de junio de 2016
  • 3163018 Actualización acumulativa para Windows 10 versión 1511 y Windows Server 2016 Technical Preview 4: 14 de junio de 2016
  • 3163016 Actualización acumulativa para Windows Server 2016 Technical Preview 5: 14 de junio de 2016

Síntomas

Todas las políticas de grupo de usuarios, incluidas las que se han filtrado de seguridad en cuentas de usuario o grupos de seguridad, o ambos, pueden no aplicarse en equipos unidos a un dominio.

Porque

Este problema puede ocurrir si al Objeto de directiva de grupo le faltan los permisos de lectura para el grupo de usuarios autenticados o si está utilizando un filtro de seguridad y le faltan permisos de lectura para el grupo de equipos de dominio.

Resolución

Para resolver este problema, use la Consola de administración de directivas de grupo (GPMC.MSC) y siga uno de los siguientes pasos:

- Agregue el grupo de usuarios autenticados con permisos de lectura en el objeto de directiva de grupo (GPO).
- Si está utilizando el filtrado de seguridad, agregue el grupo Equipos de dominio con permiso de lectura.

Consulte este enlace Implementar MS16-072 que explica todo y ofrece un script para reparar los GPO afectados. El script agrega permisos de lectura de usuarios autenticados a todos los GPO que no tienen permiso para usuarios autenticados.

# Copyright (C) Microsoft Corporation. All rights reserved.

$osver = [System.Environment]::OSVersion.Version
$win7 = New-Object System.Version 6, 1, 7601, 0

if($osver -lt $win7)
{
    Write-Error "OS Version is not compatible for this script. Please run on Windows 7 or above"
    return
}

Try
{
    Import-Module GroupPolicy
}
Catch
{
    Write-Error "GP Management tools may not be installed on this machine. Script cannot run"
    return
}

$arrgpo = New-Object System.Collections.ArrayList

foreach ($loopGPO in Get-GPO -All)
{
    if ($loopGPO.User.Enabled)
    {
        $AuthPermissionsExists = Get-GPPermissions -Guid $loopGPO.Id -All | Select-Object -ExpandProperty Trustee | ? {$_.Name -eq "Authenticated Users"}
        If (!$AuthPermissionsExists)
        {
            $arrgpo.Add($loopGPO) | Out-Null
        }
    }
}

if($arrgpo.Count -eq 0)
{
    echo "All Group Policy Objects grant access to 'Authenticated Users'"
    return
}
else
{
    Write-Warning  "The following Group Policy Objects do not grant any permissions to the 'Authenticated Users' group:"
    foreach ($loopGPO in $arrgpo)
    {
        write-host "'$($loopgpo.DisplayName)'"
    }
}

$title = "Adjust GPO Permissions"
$message = "The Group Policy Objects (GPOs) listed above do not have the Authenticated Users group added with any permissions. Group policies may fail to apply if the computer attempting to list the GPOs required to download does not have Read Permissions. Would you like to adjust the GPO permissions by adding Authenticated Users group Read permissions?"

$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", `
    "Adds Authenticated Users group to all user GPOs which don't have 'Read' permissions"
$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", `
    "No Action will be taken. Some Group Policies may fail to apply"
$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)
$result = $host.ui.PromptForChoice($title, $message, $options, 0)  
$appliedgroup = $null
switch ($result)
{
    0 {$appliedgroup = "Authenticated Users"}
    1 {$appliedgroup = $null}
}
If($appliedgroup)
{
    foreach($loopgpo in $arrgpo)
    {
        write-host "Adding 'Read' permissions for '$appliedgroup' to the GPO '$($loopgpo.DisplayName)'."
        Set-GPPermissions -Guid $loopgpo.Id -TargetName $appliedgroup -TargetType group -PermissionLevel GpoRead | Out-Null
    }
}

Si prefiere establecer el permiso de lectura para equipos de dominio (como lo hago) en lugar de usuarios autenticados, simplemente cambie esto 0 {$appliedgroup = "Authenticated Users"}a eso0 {$appliedgroup = "Domain Computers"}

yagmoth555
fuente
Parece que marcaré tentativamente esto como la respuesta. Agregué "Computadoras de dominio" con acceso de lectura a mi filtro de seguridad y ahora al menos una de las computadoras con el problema está funcionando. Así que supongo que un parche se aplicó automáticamente al servidor a través de Windows Update y causó este problema. Ahora también me pregunto cuál es la diferencia entre la pestaña Delegación para un GPO y la sección de Filtrado de seguridad ... hora de leerlo
Daniel
2
Para agregar un poco a la confusión, para mí fue necesario agregar el grupo de seguridad que contiene al usuario Y el grupo que contiene la computadora para que se aplique la política. Si agrega solo uno (usuario o computadora), la política no se aplicará. No necesariamente tiene que ser el grupo de Computadoras de dominio, solo la combinación de usuario y computadora debe ser válida en el filtrado de seguridad si se aplica la política.
Adwaenyth
Eso lo solucionó para nuestra empresa -> Agregar el grupo de usuarios autenticados con permisos de lectura en el objeto de directiva de grupo (GPO). Big thx
Brain Foo Long
Eso no parece ser una solución real, ya que no quiero que todos tengan ese GPO aplicado, solo personas específicas en el grupo. ¿Por qué MS sigue implementando esto en Windows Update? Rompe todo
Sephethus
@Sephethus Use la pestaña de delegación para agregar la computadora del dominio correctamente, el GPO funcionará de la manera habitual. Si su GPO no tiene configuraciones de computadora, agregar la computadora de dominio al filtro de seguridad tampoco hará que se aplique nada, pero la pestaña de delegación es mejor en mi opinión.
yagmoth555