当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 WSUS 中批准和部署更新

作者:精品下载站 日期:2024-12-14 23:25:51 浏览:15 分类:玩电脑

如何在 WSUS 中批准和部署更新


WSUS 管理员(Windows Server 更新服务)的主要任务之一是管理要在 Windows 计算机和服务器上安装的更新的批准。在本文中,我们将向您展示如何使用 WSUS 控制台和 PowerShell 手动批准更新、配置自动批准规则以及拒绝分配的更新。

在 WSUS 中配置目标计算机组

Windows Server 上的 WSUS 服务一旦安装并配置好,就会开始定期从 Microsoft 更新服务器下载选定产品的更新。网络上的计算机必须先获得 WSUS 管理员的批准(或拒绝),然后才能下载和安装新的更新。

要组织域计算机和服务器上的更新测试和安装,WSUS 管理员必须创建目标计算机组。根据业务任务、用户工作站和服务器的类型,您可以创建不同的计算机组。通常,在 WSUS 控制台的计算机-> 所有计算机部分中,创建以下计算机组是有意义的:

  • Test_Srv_WSUS — 一组测试服务器(非业务关键服务器或测试环境与生产环境相同的专用服务器);

  • Test_Wks_WSUS — 测试工作站;

  • Prod_Srv_WSUS — 生产 Windows 服务器;

  • Prod_Wks_WSUS — 所有用户工作站。

[玩转系统] 如何在 WSUS 中批准和部署更新

您可以手动将计算机或服务器添加到 WSUS 组,也可以使用启用客户端定位组策略选项将计算机和服务器分配到 WSUS 组。

创建 WSUS 组后,您可以批准它们的更新。有两种方法可以批准在计算机上安装更新:手动或自动。

如何在 WSUS 中手动批准和部署更新?

打开 WSUS(更新服务)控制台并选择更新部分。它显示所有可用更新的摘要报告。默认情况下,有 4 个小部分:所有更新重要更新安全更新WSUS 更新。您可以通过在这些部分之一中查找特定更新来批准安装该更新(您可以在更新搜索控制台中按知识库名称搜索它或按发布日期对更新进行排序)。

[玩转系统] 如何在 WSUS 中批准和部署更新

您可以在 WSUS 控制台中应用各种筛选器。显示尚未批准的更新列表(使用过滤器:

Approval=Unapproved

,

Status=Any

)。找到您需要的更新,右键单击它,然后从菜单中选择批准

您可以使用 CTRL 和 SHIFT 键一次选择多个更新。

[玩转系统] 如何在 WSUS 中批准和部署更新

选择要批准安装更新的 WSUS 计算机组(例如 Test_Srv_WSUS)。选择批准安装。您可以通过选择所有计算机一次性批准所有计算机组的更新,也可以单独批准每个组的更新。例如,您可以在测试组上批准更新安装,4-7 天后,如果没有出现问题,则在所有计算机上批准更新安装。

[玩转系统] 如何在 WSUS 中批准和部署更新

将出现一个包含更新批准结果的窗口。如果更新已成功批准,将显示消息结果:成功。关闭这个窗口。

[玩转系统] 如何在 WSUS 中批准和部署更新

如您所见,这就是手动批准特定更新的方式。这需要相当长的时间,因为您必须单独批准每个更新。如果您不想手动批准更新,可以创建自动批准更新。

在 WSUS 中配置自动更新批准规则

自动批准允许您批准 WSUS 服务器上出现的新更新,并自动将它们分配到目标计算机上安装,无需管理员干预。 WSUS 更新的自动批准基于批准规则。

在 WSUS 管理控制台中,转到选项并选择自动批准

在下一个窗口中,更新规则选项卡上只有一条名为默认自动批准规则的规则(默认情况下禁用)。

要创建新规则,请单击新建规则

[玩转系统] 如何在 WSUS 中批准和部署更新

批准规则由 3 个步骤组成。您必须选择更新属性、要安装更新的 WSUS 计算机的目标组以及规则名称。

[玩转系统] 如何在 WSUS 中批准和部署更新

如果单击蓝色链接,将出现相应的属性窗口。

[玩转系统] 如何在 WSUS 中批准和部署更新

例如,您可以为测试服务器启用自动安全更新批准。为此,请在选择更新分类部分下选择重要更新安全更新定义更新(取消选中所有其他选项)。然后在批准更新对话框中选择名为 Test_Srv_WSUS 的 WSUS 组

设置批准截止日期选项允许您指定是否应在目标计算机上强制安装此更新(无论 Windows 更新设置如何)。在这种情况下,无论是否启用 GPO 选项“对于计划的自动更新安装,登录用户都不会自动重新启动”,计算机都可以自动重新启动。

[玩转系统] 如何在 WSUS 中批准和部署更新

高级选项卡上,您可以选择是否自动批准 WSUS 本身的更新以及是否另外批准 Microsoft 更改的更新。建议启用此选项卡上的所有复选框。

[玩转系统] 如何在 WSUS 中批准和部署更新

现在,当您的 WSUS 服务器在该月的下一个第二个星期二下载新更新(或者如果您手动导入它们)时,它们将获得批准并自动安装在测试计算机组上。

默认情况下,Windows 客户端每 22 小时扫描一次 WSUS 服务器以获取新更新。为了确保关键设备尽快收到新更新,您可以使用自动更新检测频率组策略参数提高同步频率(请参阅案例 WSUS 错误:超出最大服务器往返次数)。您还可以使用 PSWindowsUpdate PowerShell 模块手动扫描更新。

当 WSUS 服务器上有大量客户端(超过 2,000 台计算机)时,默认配置的更新服务器的性能可能会不足,并在 windowsupdate.log 中持续出现错误 0x80244022。您可以优化 WSUS IIS 池的性能。

在测试计算机组上安装并测试更新并验证没有问题(通常测试需要 3-6 天)后,您可以在生产计算机上批准新更新。

如何拒绝和删除 WSUS 服务器上的更新?

如果批准的更新之一导致计算机或服务器出现任何问题,WSUS 管理员可以拒绝它。为此,请在 WSUS 控制台中找到更新,右键单击它,然后选择拒绝

[玩转系统] 如何在 WSUS 中批准和部署更新

然后选择要取消安装的 WSUS 组,然后选择批准删除。一段时间后,更新将在 WSUS 客户端上删除(该过程在“如何卸载 Windows 更新?”一文中有更详细的描述)。

使用 PowerShell 批准 WSUS 更新

您可以使用 PowerShell 来管理 WSUS 更新的批准。为了从 PowerShell 控制台连接到 WSUS 主机,您可以使用以下代码:

$WsusServerFqdn='mont-wsus.a-d.site'
[void][reflection.assembly]::LoadWithPartialName( «Microsoft.UpdateServices.Administration)
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer( $WsusServerFqdn, $False, '8530')

您现在可以在 WSUS 服务器上执行各种操作。例如,要运行更新同步:

$wsus.GetSubscription().StartSynchronization();

WSUS 计算机组列表:

$wsus.GetComputerTargetGroups()

选择特定的计算机组:

$group = $wsus.GetComputerTargetGroups() | ? {$_.Name -eq "Test_WKS_WSUS"}

您可以使用 GetUpdates 方法获取最新更新的列表。例如,您想要选择特定时间范围内最新的 Windows 和 Office 安全更新:

$updates = $wsus.GetUpdates() | ? {($_.CreationDate -gt "6/1/2022" -and $_.CreationDate -lt "7/1/2022" -and $_.Title -notmatch ".net Framework" -and $_.PublicationState -ne "Expired" ) -and ($_.ProductFamilyTitles -eq "Windows" -or $_.ProductFamilyTitles -eq "Office") -and ($_.UpdateClassificationTitle -eq "Security Updates" -or $_.UpdateClassificationTitle -eq "Critical Updates")}

您现在可以批准在指定的 WSUS 组上安装选定的更新:

foreach ($update in $updates)
{
$update.Approve("Install",$group)
}

[玩转系统] 如何在 WSUS 中批准和部署更新

您还可以使用

UpdateServices

管理 WSUS 的模块。

[玩转系统] 如何在 WSUS 中批准和部署更新

例如,您可以使用以下 PowerShell 脚本批准目标组的最新安全更新:

$data = (Get-Date).adddays(-30)
$wsus= Get-WSUSServer -Name wsusservername -Port 8530
Get-WsusUpdate -UpdateServer $wsus -Approval Unapproved -Status Needed
Get-WsusUpdate -Classification All -Approval Unapproved | Where-Object { ($_.Update.CreationDate -lt $data) -and ($_.update.isdeclined -ne $true) and {$_.update.title -ilike "*Windows*" -or $_.update.title -ilike "*Office*"} | | Approve-WsusUpdate -Action Install -TargetGroupName "Test_WKS_WSUS"

如何在 WSUS 目标组之间复制批准的更新?

遗憾的是,您无法使用 WSUS 控制台将批准的更新从一个 WSUS 计算机组复制到另一个 WSUS 计算机组。您可以一一搜索新更新,并手动批准它们安装在服务器和计算机的生产组上。这很耗时。

我编写了一个简单的 PowerShell 脚本,该脚本收集测试组批准的更新列表,并自动批准生产计算机组的相同更新。我在测试组上安装更新 7 天后运行该脚本。

$WsusServerFqdn='mont-wsus.a-d.site'
$WsusSourceGroup = 'Workstation_Test'
$WsusTargetGroup = 'WorkstationProduction'
[void][reflection.assembly]::LoadWithPartialName( “Microsoft.UpdateServices.Administration”)
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer( $WsusServerFqdn, $False, ‘8530’)
$Groups = $wsus.GetComputerTargetGroups()
$WsusSourceGroupObj = $Groups | Where {$_.Name -eq $WsusSourceGroup}
$WsusTargetGroupObj = $Groups | Where {$_.Name -eq $WsusTargetGroup}
$Updates = $wsus.GetUpdates()
$i = 0
ForEach ($Update in $Updates)
{
if ($Update.GetUpdateApprovals($WsusSourceGroupObj).Count -ne 0 -and $Update.GetUpdateApprovals($WsusTargetGroupObj).Count -eq 0)
{
$i ++
Write-Host (“Approving ” + $Update.Title)
$Update.Approve(‘Install’,$WsusTargetGroupObj) | Out-Null
}
}
Write-Output (“Approved {0} updates for target group {1}” -f $i, $WsusTargetGroup)

[玩转系统] 如何在 WSUS 中批准和部署更新

此 PowerShell 脚本循环遍历源 WSUS 组中所有已批准的更新,如果更新未在目标组中批准,则批准安装。此示例将批准的更新直接记录到 PowerShell 控制台。您可以将 PowerShell 脚本日志输出到文本文件。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯