ГПО не застосовуються; причина: недоступний, порожній або інвалід; Server 2012 R2 та Windows 10


16

У мене є домен Windows Server 2012 R2.

Вчора мережевий накопичувач комп'ютера (під управлінням Windows 10 Pro) перестав працювати.

Після подальшого дослідження ( gpresult /h) виявляється, що ВСІ об’єкти групової політики не вдається з причиною Inaccessible, Empty, or Disabled.

Я підтвердив, що всі GPO все ще існують і вмикаються як на (надлишкових, так і на локальних) контролерах домену. Крім того, в цьому ж домені та локальній мережі є ще 20 машин, які абсолютно не мають проблем.

Однак є ще один комп’ютер, який я протестував, який представив ту саму проблему! Це означає, що проблема з серверами?

gpresult /rповідомляє, що один клієнт отримує GPO від локального DC1, а інший від DC2. Тож це не проблема, пов’язана з конкретним постійним струмом.

gpupdate /force нічого не виправлено (хоча він стверджував, що застосовуються політики).

Я спробував видалити записи реєстру для локальної політики (дотримуючись цього посібника /superuser/379908/how-to-clear-or-remove-domain-applied-group-policy-settings-after-leaving-the -do ) та перезавантаження - та сама проблема.

Я знайшов цю сторінку підтримки від Microsoft ( https://support.microsoft.com/en-us/kb/2976965 ), але вона стверджує, що вона стосується лише клієнтів Windows 7 або попередніх версій.

Усі мої машини (і сервер, і клієнт) мають 64-розрядні версії і повністю оновлюються. Я перезавантажив їх усіх, щоб бути впевненим.



Спасибі. Ваш коментар дав ключ до рішення. Дивіться нижче.
Даніель

Відповіді:


19

Перевірте joeqwerty посилання патч теж .

Є важлива деталь:

Відомі проблеми

MS16-072 змінює контекст безпеки, за допомогою якого витягуються політики груп користувачів. Ця зміна поведінки дизайну захищає комп'ютери клієнтів від вразливості безпеки. Перед встановленням MS16-072 політики політики користувачів були отримані за допомогою контексту безпеки користувача. Після встановлення MS16-072 поліси групи користувачів отримують за допомогою контексту безпеки машин. Ця проблема застосована для наступних статей KB:

  • 3159398 MS16-072: Опис оновлення безпеки для групової політики: 14 червня 2016 року
  • 3163017 Сукупне оновлення для Windows 10: 14 червня 2016 року
  • 3163018 Сукупне оновлення для Windows 10 Версія 1511 та Технічний попередній перегляд Windows Server 2016 4: 14 червня 2016 року
  • 3163016 Сукупне оновлення для Windows Server 2016 Технічний перегляд 5: 14 червня 2016 року

Симптоми

Вся політика групи користувачів, включно з тими, які були відфільтровані за безпекою в облікових записах користувачів або групах безпеки або обох, може не застосовуватися на комп'ютерах, що приєдналися до домену.

Причина

Ця проблема може виникнути, якщо в об’єкті групової політики відсутні дозволи читання для групи автентифікованих користувачів або якщо ви використовуєте фільтрацію безпеки та відсутні дозволи читання для групи комп'ютерів домену.

Дозвіл

Щоб вирішити цю проблему, використовуйте консоль управління груповою політикою (GPMC.MSC) та виконайте один із наступних кроків:

- Додайте групу аутентифікованих користувачів за допомогою дозволів читання об’єкта групової політики (GPO).
- Якщо ви використовуєте фільтрування безпеки, додайте доменні комп’ютери з дозволом читання.

Дивіться це посилання Розгорнути MS16-072, де пояснюється все та пропонується сценарій для відновлення постраждалих групових груп. Сценарій додає автентифікованим користувачам права на читання для всіх ГРУ, які не мають дозволу для аутентифікованих користувачів.

# 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
    }
}

Якщо ви бажаєте встановити дозвіл на читання доменних комп'ютерів (як я), а не автентифікованих користувачів, просто змініть це 0 {$appliedgroup = "Authenticated Users"}на це0 {$appliedgroup = "Domain Computers"}


Схоже, я попередньо позначу це як відповідь. Я додав доменні комп’ютери з доступом для читання до моєї фільтрації в захисті, і тепер принаймні один з комп'ютерів із проблемою працює. Тому я припускаю, що патч автоматично застосував себе до сервера через оновлення Windows і викликав цю проблему. Тепер мені також цікаво, в чому різниця між вкладкою «Делегація» для групової групи та розділом «Фільтрування безпеки» ... час для читання
Даніель,

2
Щоб трохи додати плутанину, для мене потрібно було додати групу безпеки, що містить користувача І групу, що містить комп'ютер, щоб застосувати політику. Додавання лише одного (або користувача, або комп'ютера) призведе до того, що політика не застосовується. Це не обов'язково має бути групою "Комп'ютери домену", лише комбінація користувача та комп'ютера повинна бути дійсною при фільтруванні безпеки, якщо політика повинна застосовуватися.
Adwaenyth

Це було виправлено для нашої компанії -> Додати групу автентифікованих користувачів із дозволами читання на об’єкті групової політики (GPO). Big thx
Brain Foo Long

Це, здається, не є фактичним рішенням, оскільки я не хочу, щоб усі застосовували таку групову організацію, а саме конкретні люди в групі. Чому MS все ще розгортає це в оновленнях Windows? Це все порушує.
Сефет

@Sephethus Використовуйте вкладку делегування, щоб додати доменний комп'ютер правильно, GPO буде працювати так, як зазвичай. Якщо у вашого GPO не було налаштувань комп’ютера, додавання доменного комп'ютера до фільтра безпеки також нічого не застосує, але, на мою думку, вкладка делегування краще.
yagmoth555
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.