在win7上修改32位和64位的远程系统ODBC DSN?

时间:2016-04-29 18:44:31

标签: powershell odbc registry dsn

我正在尝试在多个不同的用户Box上更新DSN,这些用户Box应该运行Windows 7 x64。人们有时会创建自己的DSN(可能是系统,也许是用户),以及管理员拥有的其他地方。我希望在服务器名称为特定值时将其替换为该框的CNAME。

我读过这篇文章,这似乎是一个好的开始:http://www.sqldataplatform.com/Blog/Post/9/Modifying-ODBC-Settings-with-WMI-and-PowerShell

然而,当我在我的盒子上测试时,我遇到了一个问题,我没有看到我期望的系统DSN。

当我运行64位"数据源(ODBC)" (C:\ Windows \ system32 \ odbcad32.exe),这是默认情况下转到开始 - >管理工具 - >数据源,然后我看到我创建的数据源。但是,这不起作用:

Get-ChildItem -path "HKLM:\SOFTWARE\ODBC\ODBC.INI\" 

相反,我得到了一个我在32位版本的数据源(ODBC)中创建的系统DSN,又名" C:\ Windows \ SysWOW64 \ odbcad32.exe"

奇怪的是,如果我运行它,我会得到完全相同的32位DSN,我希望得到32位和64位,即使我在打开时看到它们在不同的节点中我的注册表。

Get-ChildItem -path "HKLM:\SOFTWARE\ODBC\ODBC.INI\" 
Get-ChildItem -path "HKLM:\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\" 

那么,知道如何获得其他DSN吗?感谢。

1 个答案:

答案 0 :(得分:1)

要查看32位,需要运行C:\ windows \ SysWOW64 \ odbcad32.exe。要查看64位,只需运行odbcad32.exe(来自System32)。

如果您正在运行32位PowerShell会话,则只能看到32位版本。如果您正在运行64位会话,则可以看到两者。