检查补丁joeqwerty链接太多。
有重要的细节:
已知的问题
MS16-072更改用于检索用户组策略的安全上下文。此设计更改行为可以保护客户的计算机免受安全漏洞的侵害。在安装MS16-072之前,已通过使用用户的安全上下文来检索用户组策略。安装MS16-072之后,将使用计算机安全上下文来检索用户组策略。此问题适用于以下知识库文章:
- 3159398 MS16-072:组策略安全更新的说明:2016年6月14日
- 3163017 Windows 10的累积更新:2016年6月14日
- 3163018 Windows 10版本1511和Windows Server 2016技术预览4的累积更新:2016年6月14日
- 3163016 Windows Server 2016技术预览5的累积更新:2016年6月14日
病征
所有用户组策略,包括那些已在用户帐户或安全组上进行安全过滤的策略,或两者都可能无法在加入域的计算机上应用。
原因
如果组策略对象缺少已验证用户组的读取权限,或者您正在使用安全筛选并且缺少域计算机组的读取权限,则可能会出现此问题。
解析度
要解决此问题,请使用组策略管理控制台(GPMC.MSC)并执行以下步骤之一:
-在组策略对象(GPO)上添加具有读取权限的Authenticated Users组。
-如果使用安全筛选,请添加具有读取权限的“域计算机”组。
请参阅此链接部署MS16-072,其中解释了所有内容并提供了修复受影响的GPO的脚本。该脚本将对所有没有身份验证用户权限的GPO添加已身份验证用户的读取权限。
# 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"}