บทนำ
หากติดตั้ง Updates บนคอมพิวเตอร์และเซิร์ฟเวอร์องค์กรผ่าน WSUS Server ภายใน อาจทดสอบล่วงหน้าบน Pilot Groups ของคอมพิวเตอร์หรือเซิร์ฟเวอร์ (แยก Computers และ Servers เข้า WSUS Target Groups ต่างๆ ผ่าน GPO) แนวทางปฏิบัติของหลายปีแสดงว่า WSUS ไม่ควรตั้งค่า Auto-approve Updates ทั้งหมดให้ติดตั้งบน Production Systems (Microsoft มักปล่อย Updates ที่ยัง Raw หรือทดสอบไม่เพียงพอ)
สามารถสร้าง Target Update Groups หลายกลุ่มบน WSUS Server แนวทางคลาสสิกคือ Approve Updates ใหม่ให้ Test Groups ก่อน (เช่น Workstation_Test และ Servers_Test) สร้าง Automatic Approval Rules สำหรับ Critical และ Security Updates ให้กลุ่มเหล่านี้ใน WSUS Settings (WSUS → Options → Automatic Approvals → Default Automatic Approval Rule)
หลัง Updates ใหม่ติดตั้งบน Test Group และยืนยันว่า Patch ไม่ก่อให้เกิดปัญหา (ปกติ 3-4 วัน) ต้อง Approve Updates ใหม่สำหรับ Production WSUS Computer Groups แต่จะทำอย่างไรให้ไม่ต้อง Select และ Approve Updates ใหม่ด้วยตนเองบน Production Computers และ Servers ทั้งหมด จะแสดง 2 วิธีง่ายๆ ในการ Copy Update Approvals จาก WSUS Test Groups ไปยัง Production Groups
วิธีที่ 1: Copy Approved Updates ด้วยตนเองใน WSUS Console
ค่อนข้างสะดวกในการ Copy Approved Updates จาก WSUS Test Group ไปยัง Production Computers/Servers Group ด้วยตนเอง ต้องตั้งค่า View ของ Update Services Console ให้เหมาะสม
- ใน Section Updates สร้าง New Update View สำหรับ Approved Updates ของ Test Group เลือก New Update View จากเมนู
- ใน Wizard เลือก "Updates are approved for a specific group" ระบุชื่อ WSUS Test Group (Workstation_test) ตั้งชื่อ View ใหม่
- เลือก View ที่สร้าง แล้วตั้ง Filter: Approval=”Approved” และ Status=”Any” คลิก Header ตารางเพิ่ม Column Release Date คลิก Column Header เรียงลำดับ Updates ใหม่สุดขึ้นก่อน
- ตอนนี้หา Updates ใหม่ง่าย ตรวจสอบสถานะการติดตั้ง ใช้ Shift/Ctrl Select Updates ที่ต้องการ Approve ให้ Production Systems Right-click → Approve ใน Context Menu เลือก Production WSUS Groups ที่ต้องการ Approve คลิก Approved for Install
วิธีที่ 2: Copy Approved Updates ระหว่าง WSUS Groups ด้วย PowerShell
หากมี Update Groups มากบน WSUS Server สามารถ Automate การ Copy Approved Updates จาก Test Groups ไป Production ด้วย PowerShell นี่คือ Script เล็กๆ ต้องระบุ FQDN ของ WSUS Server และชื่อ Source/Target WSUS Groups
$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)
Script นี้จะ List Approved Updates สำหรับ WSUS Source Group ทีละรายการ และหาก Update ไหนยังไม่ได้ Approve บน Target Group จะ Approve ให้ Install ในตัวอย่าง Script Approve 64 Updates ที่ Approved บน Test Group แตขาดหายไปบน Production Group