GPOs não se aplicam; motivo: inacessível, vazio ou desativado; Server 2012 R2 e Windows 10

16

Eu tenho um domínio do Windows Server 2012 R2.

Ontem, a unidade de rede de um computador (executando o Windows 10 Pro) parou de funcionar.

Após uma investigação mais aprofundada ( gpresult /h), parece que TODOS os objetos de diretiva de grupo estão falhando com o motivo Inaccessible, Empty, or Disabled.

Confirmei que todos os GPOs ainda existem e estão habilitados nos controladores de domínio (redundantes e locais). Além disso, existem outras 20 máquinas no mesmo domínio e LAN sem nenhum problema.

No entanto, há outro computador que testei que apresentou o mesmo problema! Isso significa que o problema está nos servidores?

gpresult /rrelata que um cliente está recebendo GPOs do DC1 local e o outro do DC2. Portanto, não é um problema relacionado a um controlador de domínio específico.

gpupdate /force não corrigiu nada (apesar de afirmar que as políticas foram aplicadas).

Tentei excluir as entradas do Registro para políticas locais (seguindo este guia /superuser/379908/how-to-clear-or-remove-domain-applied-group-policy-settings-after-leaving-the -do ) e reiniciando - o mesmo problema.

Encontrei esta página de suporte da Microsoft ( https://support.microsoft.com/en-us/kb/2976965 ), mas ela afirma que se aplica apenas a clientes Windows 7 ou anteriores.

Todas as minhas máquinas (servidor e cliente) estão executando versões de 64 bits e são totalmente atualizadas. Eu reiniciei todos eles apenas para ter certeza.

Daniel
fonte
Obrigado. Seu comentário forneceu a pista para a solução. Ver abaixo.
Daniel

Respostas:

19

Confira no link joeqwerty remendo demais .

Há os detalhes importantes:

Problemas conhecidos

O MS16-072 altera o contexto de segurança com o qual as diretivas de grupo de usuários são recuperadas. Essa alteração de comportamento por projeto protege os computadores dos clientes contra uma vulnerabilidade de segurança. Antes da instalação do MS16-072, as diretivas de grupo de usuários eram recuperadas usando o contexto de segurança do usuário. Após a instalação do MS16-072, as diretivas de grupo de usuários são recuperadas usando o contexto de segurança das máquinas. Este problema é aplicável aos seguintes artigos da base de dados:

  • 3159398 MS16-072: Descrição da atualização de segurança da Diretiva de Grupo: 14 de junho de 2016
  • 3163017 Atualização cumulativa para Windows 10: 14 de junho de 2016
  • 3163018 Atualização cumulativa para Windows 10 versão 1511 e Windows Server 2016 Visualização técnica 4: 14 de junho de 2016
  • Atualização cumulativa 3163016 para o Windows Server 2016 Visualização técnica 5: 14 de junho de 2016

Sintomas

Todas as Diretivas de Grupo de usuários, incluindo aquelas que foram filtradas com segurança nas contas de usuário ou nos grupos de segurança, ou em ambos, podem falhar na aplicação nos computadores ingressados ​​no domínio.

Causa

Esse problema pode ocorrer se o Objeto de Diretiva de Grupo estiver sem as permissões de Leitura para o grupo Usuários Autenticados ou se você estiver usando a filtragem de segurança e com as permissões de Leitura no grupo de computadores do domínio.

Resolução

Para resolver esse problema, use o Console de Gerenciamento de Diretiva de Grupo (GPMC.MSC) e siga uma das seguintes etapas:

- Adicione o grupo Usuários autenticados com permissões de leitura no GPO (Objeto de Diretiva de Grupo).
- Se você estiver usando a filtragem de segurança, adicione o grupo Computadores de Domínio com permissão de leitura.

Consulte este link Implante o MS16-072, que explica tudo e oferece script para reparar os GPOs afetados. O script adiciona permissões de leitura de usuários autenticados a todos os GPOs que não têm permissão para usuários 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
    }
}

Se você preferir definir a permissão de leitura para computadores de domínio (como eu faço) em vez de usuários autenticados, basta alterar isso 0 {$appliedgroup = "Authenticated Users"}para aquele0 {$appliedgroup = "Domain Computers"}

yagmoth555
fonte
Parece que tentarei marcar isso como a resposta. Adicionei "Computadores de domínio" com acesso de leitura à minha filtragem de segurança e agora pelo menos um dos computadores com o problema está funcionando. Portanto, suponho que um patch se aplicou automaticamente ao servidor via Windows Update e causou esse problema. Agora eu também estou querendo saber qual é a diferença entre a guia Delegação para um GPO ea seção Filtragem de Segurança ... tempo para ler
Daniel
2
Para adicionar um pouco à confusão, foi necessário adicionar o grupo de segurança que contém o usuário E o grupo que contém o computador para a aplicação da política. Adicionar apenas um (usuário ou computador) resultaria na não aplicação da política. Ele não precisa necessariamente ser o grupo Computadores de Domínio, apenas a combinação de usuário e computador deve ser válida na filtragem de segurança, se a política se aplicar.
Adwaenyth
Isso foi corrigido para nossa empresa -> Adicionar o grupo Usuários Autenticados com Permissões de Leitura no GPO (Objeto de Diretiva de Grupo). Big thx
Brain Foo Long
Isso não parece ser uma solução real, pois não quero que todos tenham esse GPO aplicado, apenas pessoas específicas do grupo. Por que a MS ainda está implantando isso no Windows Update? Isso quebra tudo.
Sephethus
@ Sephethus Use a guia deleguation para adicionar o computador do domínio corretamente, o GPO funcionará normalmente dessa maneira. Se o seu GPO não tiver configurações do computador, adicionar o computador do domínio ao filtro de segurança também não aplicará nada, mas a guia deleguation é melhor na minha opinião.
Yagmoth555