PowerShell Windows Update kontrolü, özellikle merkezi patch yönetim sistemi bulunmayan veya kontrollü bakım yapılan Windows sistemlerinde güncellemeleri sorgulamak, seçmek ve yüklemek için kullanılabilir. Bu rehberde PSWindowsUpdate modülünü güvenli bir operasyon akışıyla kullanacağız.
Ön Koşullar
- Yönetici yetkili PowerShell oturumu
- PowerShell Gallery/modül kaynağına erişim veya kurum içi güvenilir repository
- Windows Update/Microsoft Update erişimi
- Sunucularda bakım penceresi ve yeniden başlatma planı
PSWindowsUpdate Modülünü Kurma
Install-Module PSWindowsUpdate -Scope AllUsers
Import-Module PSWindowsUpdate
Üretim ortamında -Force ile sürümü kontrolsüz değiştirmek yerine önce mevcut ve kullanılabilir sürümleri kontrol edin:
Get-InstalledModule PSWindowsUpdate -ErrorAction SilentlyContinue
Find-Module PSWindowsUpdate
Eksik Güncellemeleri Listeleme
Get-WindowsUpdate
Belirli bir KB için:
Get-WindowsUpdate -KBArticleID KB5034441
Önce yalnızca tarama yapmak, üretim sunucusunda doğrudan kurulum başlatmaktan daha güvenli bir ilk adımdır.
Microsoft Update Kaynağını Kullanma
Get-WindowsUpdate -MicrosoftUpdate
Microsoft Update seçeneği Windows dışındaki desteklenen Microsoft ürünleri için de güncelleme kaynağını genişletebilir. Kurumsal WSUS/SCCM politikanız varsa istemcinin hangi update source’u kullanması gerektiğini mevcut yönetim tasarımınıza göre değerlendirin.
Güncellemeleri Kontrollü Yükleme
Önce bulunan güncellemeleri inceleyin. Bakım penceresinde kuruluma geçmek için örnek:
Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -IgnoreReboot -Verbose
-IgnoreReboot yeniden başlatmayı otomatik yapmaz. Sunucularda reboot işlemini ayrıca bakım planına göre yönetin. Otomatik reboot tercih edilecekse bunu ayrı ve bilinçli bir politika olarak ele alın; çelişen reboot parametrelerini aynı komutta kullanmayın.
Yeniden Başlatma Gereksinimini Kontrol Etme
Get-WURebootStatus
Güncelleme kurulmuş olsa bile reboot bekleyen bir sunucuyu “tamamlandı” olarak değerlendirmeyin.
Loglama
$LogDir = 'C:Logs'
New-Item -ItemType Directory -Path $LogDir -Force | Out-Null
$LogFile = Join-Path $LogDir ("WindowsUpdate_{0}.log" -f (Get-Date -Format 'yyyyMMdd_HHmmss'))
Get-WindowsUpdate -MicrosoftUpdate -Verbose 4>&1 |
Tee-Object -FilePath $LogFile
Operasyonel kayıtta tarih, hedef sistem, bulunan KB’ler, kurulum sonucu ve reboot durumu birlikte tutulmalıdır.
Birden Fazla Sunucuda Kullanım
Uzak sunucularda güncelleme başlatmadan önce WinRM, yetkilendirme, bakım penceresi ve modül kullanılabilirliğini doğrulayın. Körlemesine tüm sunuculara paralel kurulum yerine pilot/canary yaklaşımı daha güvenlidir.
$servers = Get-Content 'C:Scriptsserverlist.txt'
foreach ($server in $servers) {
Invoke-Command -ComputerName $server -ScriptBlock {
Import-Module PSWindowsUpdate
Get-WindowsUpdate
}
}
Bu örnek bilerek yalnızca scan yapar. Sonuçları doğruladıktan sonra kontrollü kurulum aşamasına geçin.
Troubleshooting
Get-WindowsUpdate komutu bulunamıyor
Get-Module PSWindowsUpdate -ListAvailable
Import-Module PSWindowsUpdate
Güncelleme taraması sonuç vermiyor
Windows Update servislerini, istemcinin WSUS/Microsoft Update kaynağını, proxy/firewall erişimini ve uygulanmış Group Policy ayarlarını kontrol edin.
Kurulum tamamlandı fakat sistem hâlâ güncel görünmüyor
Reboot gereksinimini ve yeniden tarama sonucunu kontrol edin. Bazı güncellemeler önkoşul veya ardışık güncelleme gerektirebilir.
SCCM/MECM Ortamlarında
SCCM/MECM ile yönetilen istemcilerde bağımsız PSWindowsUpdate otomasyonu merkezi Software Update politikasının yerine rastgele kullanılmamalıdır. Software Update taraması veya deployment sorunu yaşıyorsanız WUAHandler ve ScanAgent Troubleshooting rehberine geçin.
Group Policy ile Windows Update
Domain ortamında update kaynağı, otomatik güncelleme davranışı ve istemci politikaları için GPO Windows Update Yönetimi rehberini kullanabilirsiniz.
Best Practice
- Önce scan, sonra kontrollü install yapın.
- Sunucularda bakım penceresi olmadan otomatik reboot kullanmayın.
- Pilot sistemlerde doğrulamadan geniş dağıtıma geçmeyin.
- SCCM/WSUS/Intune ile yönetilen sistemlerde merkezi politikanın dışına çıkmayın.
- Kurulum sonucunu ve reboot durumunu loglayın.
Sonuç
PowerShell, Windows Update işlemlerini otomatikleştirebilir; ancak güvenli patch yönetimi yalnızca “tüm güncellemeleri yükle” komutundan ibaret değildir. Tarama, kapsam, bakım penceresi, loglama, reboot kontrolü ve merkezi yönetim politikası birlikte ele alınmalıdır.
İlgili Rehberler
PowerShell Operasyon Merkezi
Temel cmdlet, pipeline, filtreleme ve raporlama yaklaşımı için PowerShell Komutları ana referansına; hızlı hazır komutlar için Komut Kütüphanesi bölümüne geçebilirsiniz. Tekrarlanan işlemleri script haline getirirken PowerShell Script Nedir ve Nasıl Yazılır? rehberini kullanabilirsiniz.
