jobs/SqlVersionDetection.ps1
|
# SQL Version Detection Helper # Used by all job scripts to handle TrustServerCertificate on SQL 2022+ function Get-SqlVersionWithoutError { param([string]$ConnectionString) try { $conn = New-Object System.Data.SqlClient.SqlConnection($ConnectionString) $conn.Open() $cmd = $conn.CreateCommand() $cmd.CommandText = "SELECT SERVERPROPERTY('ProductVersion')" $version = $cmd.ExecuteScalar() $conn.Close() return $version } catch { return $null } } function Initialize-SqlTrustServerCertificate { param([string]$SqlInstance) $connStringBase = "Server=$SqlInstance;Integrated Security=SSPI;Timeout=5" $version = Get-SqlVersionWithoutError -ConnectionString $connStringBase if (-not $version) { $connStringWithTrust = $connStringBase + ";TrustServerCertificate=True" $version = Get-SqlVersionWithoutError -ConnectionString $connStringWithTrust Set-DbatoolsConfig -FullName sql.connection.trustcert -Value $true -Scope Session -Force -ErrorAction SilentlyContinue } if (-not $version) { throw "Verbindung zu $SqlInstance fehlgeschlagen." } return $version } |