我正在寻找一种方法将多个用户 DSN 连接(ODBC)从旧服务器迁移到新服务器。
在注册表中,我只能看到我自己的用户已保存的用户 DSN 连接,有没有办法可以导出所有用户(总共 15 个)的用户 DSN 连接,这样他们就不必在新服务器上手动设置他们的 DSN 连接?
谢谢!
此致
答案1
如果已安装驱动程序,则可以使用以下 PowerShell 脚本:
$OldDsn = Invoke-Command -ComputerName OldServer { get-odbcdsn } | % {
$splat = @{}
if ($_.PropertyValue) { $splat['SetPropertyValue'] = $_.PropertyValue }
Add-OdbcDsn -Name $_.Name -DsnType $_.DsnType -Platform $_.Platform `
-DriverName $_.DriverName @splat
}
在提升权限的 PowerShell/ISE 中在新服务器上运行此命令,并将 ComputerName 参数更改Invoke-Command
为旧服务器的主机名
答案2
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\
文件 c:\windows\odbc.ini 也重复了一些信息。
C:\Windows\ODBCINST.INI 仅包含驱动程序信息。
这不能替代实际安装驱动程序!
ODBCINST.INI 在以下位置有相应的注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\
HKEY_CURRENT_USER\Software\ODBC\ODBCINST.INI\