| ## WUSUS post-deplpyment yapilandirma ayarlari |
| . “C:\Program Files\Update Services\Tools\WsusUtil.exe” postinstall CONTENT_DIR=C:\WSUS |
| ### WSUS nesnesinin tanımlanması |
| $wsus = Get-WSUSServer |
| ### WSUS yapilandirma tanimlamasi |
| $wsusConfig = $wsus.GetConfiguration() |
| ### Microsoft güncellemelerinin yapilandirilamsi |
| Set-WsusServerSynchronization –SyncFromMU |
| ### Güncelleme paketi dil tanımlaması sadece ingilizce yapilandirilmisiti bu bölümde istediğiniz dilleri virgul ekleyerek kısa kodunu yazabilirsiniz. |
| $wsusConfig.AllUpdateLanguagesEnabled = $false |
| $wsusConfig.SetEnabledUpdateLanguages(“en”) |
| $wsusConfig.Save() |
| ### WSUS ve Microsoft güncelleme SYNC tanimlamasi |
| $wsus.GetSubscription().StartSynchronizationForCategoryOnly() |
| start-sleep 15 |
| ### SYNC tanimlamasi |
| while ($wsus.GetSubscription().GetSynchronizationStatus() -ne “NotProcessing”) { |
| $time = get-date -UFormat “%H:%M:%S” |
| $total = $wsus.GetSubscription().getsynchronizationprogress().totalitems |
| $processed = $wsus.GetSubscription().getsynchronizationprogress().processeditems |
| $process = $processed/$total |
| $progress = “{0:P0}” -f $process |
| Write-Host “” |
| Write-Host “The first synchronization isn’t completed yet $time” |
| Write-Host “Kindly have patience, the progress is $progress” |
| Start-Sleep 10 |
| } |
| Write-Host “The synchronization has completed at $time” -ForegroundColor Green |
| Write-Host “The WSUS Configuration will now continue” -ForegroundColor Green |
| ### Guncelleme urunlerinin tanimlanmasi, bu bolumu genisletebilrisiniz. Ben örnek için sadece Windows Server 2019 ekledim scritpti genisleterek diger urunleride ekleyebilirsiniz. |
| write-host ‘Setting WSUS Products’ |
| Get-WsusProduct | where-Object { |
| $_.Product.Title -in ( |
| ‘Windows Server 2019’) |
| } | Set-WsusProduct |
| ### Guncelleme sinfilarinin tanimlanmasi yine bu bolumde de siniflari arttirabilir yada azaltabilirsiniz. |
| write-host ‘Setting WSUS Classifications’ |
| Get-WsusClassification | Where-Object { |
| $_.Classification.Title -in ( |
| ‘Critical Updates’, |
| ‘Definition Updates’, |
| ‘Feature Packs’, |
| ‘Security Updates’, |
| ‘Service Packs’, |
| ‘Update Rollups’, |
| ‘Updates’) |
| } | Set-WsusClassification |
| ### SYNC yapilandirmasi |
| write-host ‘Enabling WSUS Automatic Synchronisation’ |
| $subscription = $wsus.GetSubscription() |
| $subscription.SynchronizeAutomatically=$true |
| ### otomatik sync yapilandirmasi |
| $subscription.SynchronizeAutomaticallyTimeOfDay= (New-TimeSpan -Hours 0) |
| $subscription.NumberOfSynchronizationsPerDay=1 |
| $subscription.Save() |
| ### Guncellenecek hedef grubun belirlenmesi |
| $wsus.CreateComputerTargetGroup(“Updates”) |
| ### Guncelleme paketlerinin onaylanmasi |
| write-host ‘Configuring default automatic approval rule’ |
| [void][reflection.assembly]::LoadWithPartialName(“Microsoft.UpdateServices.Administration”) |
| $rule = $wsus.GetInstallApprovalRules() | Where { |
| $_.Name -eq “Default Automatic Approval Rule”} |
| $class = $wsus.GetUpdateClassifications() | ? {$_.Title -In ( |
| ‘Critical Updates’, |
| ‘Security Updates’)} |
| $class_coll = New-Object Microsoft.UpdateServices.Administration.UpdateClassificationCollection |
| $class_coll.AddRange($class) |
| $rule.SetUpdateClassifications($class_coll) |
| $rule.Enabled = $True |
| $rule.Save() |
| ### Computer groupların güncelleme islemi |
| $wsusConfig.OobeInitialized = $true |
| $wsusConfig.Save() |
| ### SYNC baslamasi |
$wsus.GetSubscription().StartSynchronization()