WSUS بهروزرسانیها را یک بار از مایکروسافت میگیرد و در شبکهی داخلی پخش میکند. پهنای باند اینترنت کمتر مصرف میشود و شما تعیین میکنید کدام بهروزرسانی کی نصب شود.
مایکروسافت WSUS را در وضعیت «توسعهی متوقفشده» قرار داده، ولی نقش آن در Windows Server 2025 هنوز وجود دارد و پشتیبانی میشود.
۱. نصب نقش
محتوای بهروزرسانیها حجم زیادی دارد (دهها تا صدها گیگابایت)، پس آن را روی دیسک جداگانه بگذارید:
Install-WindowsFeature UpdateServices -IncludeManagementTools
New-Item -ItemType Directory -Path D:\WSUS
& "C:\Program Files\Update Services\Tools\WsusUtil.exe" postinstall CONTENT_DIR=D:\WSUS۲. انتخاب محصولات و دستهها
همگامسازی همهی محصولات دیسک را پر میکند. فقط آنچه در شبکه دارید را انتخاب کنید:
$wsus = Get-WsusServer
Set-WsusServerSynchronization -SyncFromMU
# Fetch the catalog of products/categories once
$sub = $wsus.GetSubscription()
$sub.StartSynchronizationForCategoryOnly()
while ($sub.GetSynchronizationStatus() -ne 'NotProcessing') { Start-Sleep 10 }
Get-WsusProduct | Set-WsusProduct -Disable
Get-WsusProduct | Where-Object { $_.Product.Title -in @(
'Windows Server 2025', 'Microsoft Server operating system-21H2', 'Windows 11') } | Set-WsusProduct
Get-WsusClassification | Where-Object { $_.Classification.Title -in @(
'Critical Updates', 'Security Updates', 'Definition Updates', 'Update Rollups') } | Set-WsusClassificationMicrosoft Server operating system-21H2 همان Windows Server 2022 است. همگامسازی کامل و زمانبندی روزانه:
$sub.SynchronizeAutomatically = $true
$sub.SynchronizeAutomaticallyTimeOfDay = (New-TimeSpan -Hours 1)
$sub.NumberOfSynchronizationsPerDay = 1
$sub.Save()
$sub.StartSynchronization()۳. گروههای کامپیوتر
بهروزرسانی را اول روی گروه آزمایشی نصب کنید و بعد روی سرورهای اصلی:
$wsus.CreateComputerTargetGroup('Pilot')
$wsus.CreateComputerTargetGroup('Production')برای اینکه عضویت گروه از GPO خوانده شود، در کنسول WSUS بخش Options › Computers را روی «Use Group Policy or registry settings» بگذارید.
۴. اتصال کلاینتها با GPO
یک GPO بسازید و آن را به OU سرورها لینک کنید. مقادیر زیر همان تنظیمات بخش Windows Update در Administrative Templates هستند:
$gpo = 'WSUS - Pilot'
New-GPO -Name $gpo | New-GPLink -Target 'OU=Pilot,OU=Servers,DC=corp,DC=sahor,DC=ir'
$wu = 'HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate'
Set-GPRegistryValue -Name $gpo -Key $wu -ValueName WUServer -Type String -Value 'http://wsus01.corp.sahor.ir:8530'
Set-GPRegistryValue -Name $gpo -Key $wu -ValueName WUStatusServer -Type String -Value 'http://wsus01.corp.sahor.ir:8530'
Set-GPRegistryValue -Name $gpo -Key $wu -ValueName TargetGroupEnabled -Type DWord -Value 1
Set-GPRegistryValue -Name $gpo -Key $wu -ValueName TargetGroup -Type String -Value 'Pilot'
Set-GPRegistryValue -Name $gpo -Key "$wu\AU" -ValueName UseWUServer -Type DWord -Value 1
Set-GPRegistryValue -Name $gpo -Key "$wu\AU" -ValueName AUOptions -Type DWord -Value 3AUOptions = 3 یعنی دانلود خودکار و نصب با تصمیم مدیر. روی سرورها این امنتر از راهاندازی مجدد خودکار است. روی کلاینت اجرا کنید:
gpupdate /force
usoclient StartScan۵. تأیید مرحلهای
# Pilot first
Get-WsusUpdate -Classification Security -Approval Unapproved -Status FailedOrNeeded |
Approve-WsusUpdate -Action Install -TargetGroupName 'Pilot'
# A week later, if nothing broke
Get-WsusUpdate -Classification Security -Approval Approved -Status FailedOrNeeded |
Approve-WsusUpdate -Action Install -TargetGroupName 'Production'۶. نگهداری
بدون پاکسازی، دیتابیس WSUS کند میشود. ماهی یک بار اجرا کنید (یا با Task Scheduler زمانبندی کنید):
Invoke-WsusServerCleanup -DeclineSupersededUpdates -DeclineExpiredUpdates `
-CleanupObsoleteUpdates -CleanupUnneededContentFiles -CleanupObsoleteComputers