web-dev-qa-db-ja.com

GPOは適用されません。理由:アクセス不能、空、または無効。 Server 2012 R2およびWindows 10

Windows Server 2012 R2ドメインを持っています。

昨日、コンピューター(Windows 10 Proを実行)のネットワークドライブが機能しなくなりました。

さらに調査した結果(gpresult /h)、すべてのグループポリシーオブジェクトがInaccessible, Empty, or Disabledの理由で失敗しているようです。

すべてのGPOがまだ存在し、両方の(冗長およびローカル)ドメインコントローラーで有効になっていることを確認しました。さらに、同じドメインとLANに20台のマシンがあり、まったく問題はありません。

ただし、同じ問題が発生したテスト済みのコンピュータが他に1台あります。問題はサーバーにあるということですか?

gpresult /rは、一方のクライアントがローカルDC1から、もう一方がDC2からGPOを取得していることを報告します。したがって、特定のDCに関連する問題ではありません。

gpupdate /forceは何も修正しませんでした(ただし、ポリシーが適用されたと主張されています)。

ローカルポリシーのレジストリエントリを削除してみました(このガイドに従って https://superuser.com/questions/379908/how-to-clear-or-remove-domain-applied-group-policy-settings-after -leaving-the-do )および再起動-同じ問題。

このサポートページをマイクロソフトから見つけました( https://support.Microsoft.com/en-us/kb/2976965 )が、それはWindows 7以前のクライアントにのみ適用されると主張しています。

私のすべてのマシン(サーバーとクライアントの両方)は64ビットバージョンを実行しており、完全に更新されています。念のため、すべて再起動しました。

16
Daniel

パッチjoeqwerty link too を確認してください。

重要な詳細があります:

既知の問題

MS16-072は、ユーザーグループポリシーの取得に使用されるセキュリティコンテキストを変更します。この設計上の動作変更は、セキュリティの脆弱性からお客様のコンピューターを保護します。 MS16-072がインストールされる前に、ユーザーのセキュリティコンテキストを使用してユーザーグループポリシーが取得されました。 MS16-072をインストールした後、マシンのセキュリティコンテキストを使用してユーザーグループポリシーを取得します。この問題は、次のKB記事に該当します。

  • 3159398 MS16-072:グループポリシーのセキュリティ更新プログラムの説明:2016年6月14日
  • 3163017 Windows 10の累積的な更新プログラム:2016年6月14日
  • 3163018 Windows 10 Version 1511およびWindows Server 2016 Technical Preview 4の累積的な更新4:2016年6月14日
  • 3163016 Windows Server 2016 Technical Preview 5の累積的な更新:2016年6月14日

症状

ユーザーアカウントまたはセキュリティグループ、あるいはその両方でセキュリティフィルター処理されたものを含むすべてのユーザーグループポリシーは、ドメインに参加しているコンピューターに適用できない場合があります。

原因

この問題は、グループポリシーオブジェクトにAuthenticated Usersグループの読み取りアクセス許可がない場合、またはセキュリティフィルターを使用していて、ドメインコンピューターグループの読み取りアクセス許可がない場合に発生することがあります。

解決

この問題を解決するには、グループポリシー管理コンソール(GPMC.MSC)を使用して、次のいずれかの手順に従います。

-グループポリシーオブジェクト(GPO)に対する読み取りアクセス許可を持つAuthenticated Usersグループを追加します。
-セキュリティフィルタリングを使用している場合は、読み取りアクセス許可を持つDomain Computersグループを追加します。

このリンクを参照してください Deploy MS16-072 すべてを説明し、影響を受けるGPOを修復するスクリプトを提供します。スクリプトは、Authenticated usersのアクセス許可を持たないすべてのGPOに、Authenticated usersの読み取りアクセス許可を追加します。

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

19
yagmoth555