You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过代码获取SQL Server ODBC驱动版本?优先使用PowerShell

获取SQL Server ODBC驱动版本的PowerShell及替代方案

方法1:使用PowerShell原生Get-OdbcDriver cmdlet

这是最简便的方法,适用于Windows 8/Server 2012及以上系统(系统自带Wdac模块),可直接查询已注册的ODBC驱动:

# 查询所有SQL Server相关ODBC驱动,输出名称和版本
Get-OdbcDriver -Name "*SQL Server*" | Select-Object Name, Version

如需区分32位/64位驱动,可添加-Platform参数:

# 查询64位SQL Server ODBC驱动
Get-OdbcDriver -Name "*SQL Server*" -Platform 64-bit | Select-Object Name, Version

# 查询32位SQL Server ODBC驱动
Get-OdbcDriver -Name "*SQL Server*" -Platform 32-bit | Select-Object Name, Version

方法2:检查驱动文件的版本信息

如果Get-OdbcDriver不可用,可直接读取ODBC驱动对应的DLL文件版本。常见SQL Server ODBC驱动文件路径:

  • ODBC Driver 17/18 for SQL Server:C:\Windows\System32\msodbcsql17.dll(64位)、C:\Windows\SysWOW64\msodbcsql17.dll(32位)
  • SQL Server Native Client 11:C:\Windows\System32\sqlncli11.dll(64位)、C:\Windows\SysWOW64\sqlncli11.dll(32位)
  • 旧版SQL Server ODBC驱动:C:\Windows\System32\sqlsrv32.dll(64位)、C:\Windows\SysWOW64\sqlsrv32.dll(32位)

PowerShell代码示例:

# 获取64位ODBC Driver 17 for SQL Server的版本
$driverPath = "C:\Windows\System32\msodbcsql17.dll"
if (Test-Path $driverPath) {
    (Get-Item $driverPath).VersionInfo.ProductVersion
} else {
    Write-Host "驱动文件不存在"
}

# 获取32位版本,替换路径为SysWOW64
$driverPath32 = "C:\Windows\SysWOW64\msodbcsql17.dll"
if (Test-Path $driverPath32) {
    (Get-Item $driverPath32).VersionInfo.ProductVersion
}

方法3:使用系统自带odbcinst.exe命令行工具

通过系统内置的ODBC配置工具解析输出,提取驱动版本:

# 列出所有ODBC驱动,过滤SQL Server相关条目并提取版本
odbcinst.exe -q -d | Select-String -Pattern "SQL Server" -Context 0,2 | ForEach-Object {
    $driverName = $_.Line.Trim() -replace "^\[|\]$", ""
    $versionLine = $_.Context.PostContext | Where-Object { $_ -match "Version=" }
    if ($versionLine) {
        [PSCustomObject]@{
            DriverName = $driverName
            Version = $versionLine -replace "Version=", ""
        }
    }
}

补充:注册表查询的正确路径

若之前未找到注册表信息,可能是路径有误:

  • 64位驱动注册表路径:HKLM:\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers 及对应驱动子项
  • 32位驱动注册表路径:HKLM:\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers

查询示例:

# 查询64位SQL Server驱动的注册表信息
Get-ChildItem "HKLM:\SOFTWARE\ODBC\ODBCINST.INI" | Where-Object { $_.Name -match "SQL Server" } | Get-ItemProperty | Select-Object PSChildName, Driver, Version

内容的提问来源于stack exchange,提问作者RaviLobo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:56:08