【问题标题】:Modifying remote System ODBC DSNs on win7, both 32-bit and 64-bit?在 32 位和 64 位 win7 上修改远程系统 ODBC DSN?
【发布时间】:2016-04-29 18:44:31
【问题描述】:

我正在尝试更新多个不同用户框上的 DSN,它们应该运行 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 吗?谢谢。

【问题讨论】:

  • 我认为您混淆了哪个是 32 位版本。 System32 是 64 位的,SysWow64 是 32 位的。
  • 好的,很高兴知道。我会更新的。不过,同样的问题也适用 - 为什么我可以看到一个,而看不到另一个,我如何才能看到两者?
  • 要查看32位的,需要运行C:\windows\SysWOW64\odbcad32.exe。要查看 64 位版本,只需运行 odbcad32.exe(来自 System32)。
  • 正确 - 运行它们的 ODBC 应用程序,我可以看到它们。运行 regedit 我看到两个键。但我不能同时使用 powershell。
  • 如果您正在运行 32 位的 powershell 会话,您将只能看到 32 位的会话。如果您运行的是 64 位会话,则可以同时看到两者。

标签: powershell odbc registry dsn


【解决方案1】:

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

如果您正在运行 32 位的 powershell 会话,您将只能看到 32 位的会话。如果您运行的是 64 位会话,则可以同时看到两者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 2015-09-26
    • 2011-04-01
    • 1970-01-01
    • 2012-09-01
    • 2012-03-16
    相关资源
    最近更新 更多