Public/Get-Version.ps1
|
function Get-Version { <# .SYNOPSIS Gets installed SQL Server LocalDB versions. .DESCRIPTION Returns the names and version numbers of SQL Server LocalDB versions installed on the computer. These versions can be used when creating instances with New-LocalDbInstance. .EXAMPLE PS> Get-LocalDbVersion Name Version ---- ------- Microsoft SQL Server 2016 13.1.4001.0 Microsoft SQL Server 2019 15.0.4153.1 #> [CmdletBinding()] param ( ) Write-Verbose 'Get sqllocaldb versions.' $result = Invoke-SqlLocalDb -ArgumentList @('versions') if (-not $result.Succeeded) { Write-SqlLocalDbError -Message 'Failed to get LocalDB versions.' -Details $result.Error return } foreach ($line in $result.Output) { $line = "$line".Trim() if (-not $line) { continue } $parsedVersion = $null if ($line -match '^(?<Name>.+?)\s+\((?<Version>\d+(?:\.\d+){1,3})\)$' -and [version]::TryParse($matches.Version, [ref]$parsedVersion)) { $version = [PSCustomObject] @{ Name = $matches.Name Version = $parsedVersion } $version } else { Write-Warning "Unexpected output from 'sqllocaldb versions': $line" } } } |