能否通过PowerShell修改现有ODBC DSN关联的驱动程序?
操作可行性结论
Windows ODBC DSN的关联驱动是创建时绑定的核心属性,Wdac模块没有提供直接修改已有DSN关联驱动的接口,该操作无法直接实现。
等效实现方案
你可以通过「导出配置→删除旧DSN→用新驱动重建同配置DSN」的流程完成需求,全流程可通过Wdac模块自动化实现,除驱动外的所有原有DSN配置(名称、连接地址、认证规则等)都可以完全保留,不影响现有业务使用:
- 第一步:导出目标DSN的全量配置,以64位用户DSN为例,系统DSN将
-DsnType参数改为System即可Get-OdbcDsn -Name "目标DSN名称" -DsnType User -Platform "64-bit" | Select-Object * - 第二步:删除原有DSN
Remove-OdbcDsn -Name "目标DSN名称" -DsnType User -Platform "64-bit" - 第三步:使用已安装的新版SQL Server驱动重建DSN,将第一步导出的属性填入
-SetPropertyValue参数即可,示例如下:
Add-OdbcDsn -Name "目标DSN名称" ` -DsnType User ` -Platform "64-bit" ` -DriverName "ODBC Driver 18 for SQL Server" ` -SetPropertyValue @( "Server=你的SQL服务器地址", "Database=默认连接数据库名", "Trusted_Connection=Yes", "Encrypt=Optional" )
提示:如果分析团队同时使用32位应用访问该DSN,需要对32位平台的DSN单独执行一次上述操作。
结果验证
重建完成后执行以下命令即可确认驱动已更新为目标版本:Get-OdbcDsn -Name "目标DSN名称" | Select-Object DriverName
内容的提问来源于stack exchange,提问作者Richard L. Dawson
相关产品推荐
相关产品推荐

