Powershell ile ODBC Driver for SQL Server Upgrade Süreçleri

Benzer işlemi OLE DB Driver upgrade süreçlerinde ele almıştık.

Powershell ile Microsoft OLE DB Driver for SQL Server Upgrade Süreçleri

Aynı işlem olarak ele alabilirsiniz. OLEDB güncel sürümlerini ortak bir alana atıp, scriptteki msi path yolunu güncelleyelim. Birde indirmiş olduğumuz makinede yüklenmesi gereken versiyonları RequiredVersions altında ilgili sürümün yanına yazalım.

Script çalıştığında makinede kurulu olan OleDb leri sorgulayacak ve sürümlerine bakacak eğer requiredversiyon da ki sürümden düşükse ortak alana atmış olduğunuz güncel sürümü kurma sürecini başlatıyor olacak.

# Gereken versiyonlar
$requiredVersions = @{
    "Microsoft ODBC Driver 16 for SQL Server" = [version]"16.10.6.1"
    "Microsoft ODBC Driver 17 for SQL Server" = [version]"17.10.6.1"
    "Microsoft ODBC Driver 18 for SQL Server" = [version]"18.3.3.1"
    "Microsoft ODBC Driver 19 for SQL Server" = [version]"19.10.6.1"
}

# MSI dosyalarının yolları
$msiPaths = @{
    "Microsoft ODBC Driver 16 for SQL Server" = "\\XXX\ODBCSQL\msodbcsql16.10.6.msi"
    "Microsoft ODBC Driver 17 for SQL Server" = "\\XXX\ODBCSQL\msodbcsql17.10.6.msi"
    "Microsoft ODBC Driver 18 for SQL Server" = "\\XXX\ODBCSQL\msodbcsql18.3.3.1.msi"
    "Microsoft ODBC Driver 19 for SQL Server" = "\\XXX\ODBCSQL\msodbcsql19.10.6.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."
    }
}

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir