내부 WSUS 서버를 사용하여 기업 컴퓨터 및 서버에 업데이트를 설치하는 경우 컴퓨터 또는 서버의 파일럿 그룹에서 미리 테스트할 수 있습니다(GPO를 사용하여 컴퓨터와 서버를 다른 WSUS 대상 그룹으로 분리할 수 있음). 최근 몇 년간의 관행에 따르면 WSUS는 생산 시스템에 설치할 모든 새 업데이트를 자동으로 승인하도록 구성해서는 안 됩니다(Microsoft는 종종 원시 업데이트 또는 충분히 테스트되지 않은 업데이트를 릴리스함).
WSUS 서버에서 여러 대상 업데이트 그룹을 만들 수 있습니다. WSUS 서버에서 새 업데이트를 승인하는 기존 체계는 이러한 업데이트가 처음에 테스트 그룹(예:Workstation_Test 및 Servers_Test 그룹)의 컴퓨터와 서버에서 테스트됨을 의미합니다. 모든 중요 및 보안 업데이트의 자동 승인 규칙은 WSUS 설정(WSUS -> 옵션 -> 자동 승인 -> 기본값 자동 승인 규칙 ).
테스트 그룹의 컴퓨터에 새 업데이트가 설치되고 패치로 인해 문제가 발생하지 않았다는 확인을 받은 후(보통 3-4일이 소요됨) 프로덕션 WSUS 컴퓨터 그룹에 설치할 새 업데이트를 승인해야 합니다. 그러나 모든 프로덕션 컴퓨터와 서버에서 수동으로 새 업데이트를 선택하고 승인할 필요가 없도록 하려면 어떻게 해야 할까요? WSUS 테스트 그룹에서 생산적인 그룹으로 업데이트 승인을 복사하는 아주 간단한 두 가지 방법을 보여 드리겠습니다.
WSUS 콘솔에서 승인된 업데이트를 수동으로 복사하는 방법
WSUS 테스트 그룹에서 생산적인 컴퓨터/서버 그룹으로 승인된 업데이트를 수동으로 복사하는 것이 매우 편리합니다. 이를 수행하려면 Update Services 콘솔 보기를 올바르게 구성해야 합니다.
업데이트 섹션에서 테스트 그룹의 승인된 업데이트에 대한 새 보기를 만듭니다. 그렇게 하려면 새 업데이트 보기를 선택하세요. 메뉴에서.
표시되는 마법사에서 "특정 그룹에 대한 업데이트가 승인됨을 선택합니다. "를 입력하고 WSUS 테스트 그룹(Workstation_test)의 이름을 지정합니다. 새 보기의 이름을 지정하십시오.
생성한 보기를 선택한 다음 승인을 선택합니다. ="승인됨" 및 상태 ="Any"는 하단의 필터 메뉴에 있습니다. 표 머리글을 클릭하여 업데이트 릴리스 날짜(릴리스 날짜 ). 열 머리글을 클릭하여 새 업데이트가 먼저 표시되도록 업데이트 목록을 정렬합니다.
보시다시피, 이제 목록에서 새 업데이트를 쉽게 찾고 설치 상태를 확인할 수 있습니다. Shift 및/또는 Ctrl을 사용하여 생산 시스템에 대해 승인할 업데이트를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 승인을 선택할 수 있습니다. 컨텍스트 메뉴에서. WSUS 그룹 목록에서 선택한 업데이트를 승인할 생산 그룹을 선택하고 설치 승인됨을 클릭합니다. .
그러면 새 업데이트가 생산 시스템에도 설치됩니다.
PowerShell을 사용하여 WSUS 그룹 간에 승인된 업데이트를 복사하는 방법
WSUS 서버에 많은 업데이트 그룹이 있는 경우 PowerShell을 사용하여 WSUS 테스트 그룹에서 생산적인 그룹으로 승인된 업데이트를 자동으로 처리할 수 있습니다. 저는 이 작은 PoSh 스크립트를 작성했습니다. 여기에는 WSUS 서버의 FQDN 이름과 승인된 업데이트를 복사하려는 소스 및 대상 WSUS 그룹의 이름을 입력해야 합니다.
$WsusServerFqdn='mont-wsus.woshub.com'
$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)
이 PowerShell 스크립트는 WSUS 원본 그룹에 대해 승인된 모든 업데이트를 순차적으로 나열하며 업데이트가 승인되지 않은 경우 대상 그룹은 설치를 승인합니다. 이 예에서 스크립트는 테스트 그룹에서 승인되었지만 생산적인 그룹에서는 누락된 64개의 업데이트를 승인했습니다.