Malumunuz bir çok kurumda düzenli olarak Windows / Linux OS base olacak şekilde upgrade edilir fakat paketler genellikle es geçilir. Neden böyle bir alışkanlık var emin değilim. 3rd party paketler ile uğraşmak insanlar için zaman kaybı olarak gözükebilir ama güvenlik için bu upgrade süreçleri gerçekleştirilmek durumunda.
SCCM ile bu işlemi otomatize edebiliriz hızlıca fakat SCCM olmayan bir ortamda nasıl ilerlenecek ya da sccm varsa bile belki sccm ile uğraşmak istemeyebilirsiniz. Çok uzatmadan bunun için bir powershell scripti hazırladım hızlıca onu paylaşayım.
Microsoftun sayfasından güncel olan Microsoft OLO DB Driver for SQL Server paketlerinin hepsini indirip ortak paylaşımlı bir alana atalım ve scripte içerisinde dosya yolu ve güncel olan versiyon bilgilerini script içerisinde güncelleyelim. Sonrası Pdq, zamanlanmış görev ve benzeri şekilde makinelere scripti deploy etmeye kalıyor.
OS üzerinde birden farklı OLE DB Driverlari yüklü olabilir. Bir OS üzerinde Ole DB Driver 17 varken 19 sürümünüde ekstra olarak yüklemeye gerek yok tabiki. Script makine üzeirndeki versiyonu tespit ederek sadece ilgili versiyonun upgrade sürecini gerçekleştirecek şekilde konfigure edilmiştir.
Umarım işinize yarar, keyifli hafta sonları..
# Gereken versiyonlar $requiredVersions = @{ "Microsoft OLE DB Driver 16 for SQL Server" = [version]"16.10.6.1" "Microsoft OLE DB Driver 17 for SQL Server" = [version]"17.10.6.1" "Microsoft OLE DB Driver 18 for SQL Server" = [version]"18.7.2" "Microsoft OLE DB Driver 19 for SQL Server" = [version]"19.10.6.1" "Microsoft OLE DB Driver for SQL Server" = [version]"18.7.2" } # MSI dosyalarının yolları $msiPaths = @{ "Microsoft OLE DB Driver 16 for SQL Server" = "\\XXX\OLEDBSQL\msoledbsql16.7.2.msi" "Microsoft OLE DB Driver 17 for SQL Server" = "\\XXX\OLEDBSQL\msoledbsql17.3.3.msi" "Microsoft OLE DB Driver 18 for SQL Server" = "\\XXX\OLEDBSQL\msoledbsql18.7.2.msi" "Microsoft OLE DB Driver 19 for SQL Server" = "\\XXX\OLEDBSQL\msoledbsql19.3.3.msi" "Microsoft OLE DB Driver for SQL Server" = "\\XXX\OLEDBSQL\msoledbsql18.7.2.msi" } # Geçici dizin $tempDir = "C:\Windows\Temp" # Her bir driver sürümü için kontrol et foreach ($driverName in $requiredVersions.Keys) { $odbcDriver = Get-WmiObject -Query "SELECT * FROM Win32_Product WHERE Name = '$driverName'" if ($odbcDriver) { $currentVersion = [version]$odbcDriver.Version Write-Host "$driverName is installed." Write-Host "Current Version: $currentVersion" if ($currentVersion -lt $requiredVersions[$driverName]) { Write-Host "Updating $driverName to version $($requiredVersions[$driverName])..." # Kaynak ve hedef yolları $sourcePath = $msiPaths[$driverName] $destinationPath = Join-Path -Path $tempDir -ChildPath (Split-Path -Leaf $sourcePath) # MSI dosyasını kopyala Copy-Item -Path $sourcePath -Destination $destinationPath -Force # Kurulumu başlat Start-Process msiexec.exe -ArgumentList "/i `"$destinationPath`" /quiet /norestart" -Wait Write-Host "Update completed." } else { Write-Host "$driverName is up-to-date." } } else { Write-Host "$driverName is not installed." } }