如何在.Net中以编程方式编辑用户DSN?

时间:2014-04-07 09:31:57

标签: .net sql-server odbc dsn regedit

我们有很多最终用户在他们的计算机上使用DSN通过Excel连接到我们的SQL Server。

enter image description here

现在我们已经迁移了我们的SQL Server,并且需要将DSN编辑为低于值(从PrevSQLServer到NewSQLServer)

enter image description here

此更改需要在许多最终用户计算机上完成,因此我们认为我们将生成一种.exe文件,我们只会要求最终用户双击,DSN将被编辑。

我们考虑过.Net(因为Windows机器默认有.net框架)来实现上面的.exe,在Google上我意识到这需要通过编辑注册表来完成所以进入注册表但是我只是看不到SQL服务器名称(要编辑的属性)

enter image description here

在哪里可以找到regedit中的SQL Server名称,我可以通过编程方式进行更改?如果是的话怎么样?

我甚至读过一些可以编辑的ODBC文件来执行此操作(而不是搞乱regedit)

我找到了一个名为

的条目的ODBC.INI文件

MIX_SQL_PROD = SQL Server(32位)

但该文件中没有SQL Server名称。

如何进行编辑DSN的工作? 在Internet上我在power shell中找到了一些代码,但不确定是否使用它,因为我没有Power Shell的任何专业知识,并且不确定默认情况下Windows机器上的PowerShell运行时间是否可用

2 个答案:

答案 0 :(得分:1)

用户DSN在此密钥下的注册表中列出:

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources

有关特定DSN的详细数据保留在此处:

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\<DSN name>

您可以轻松地将信息导出到reg文件中,然后将其导入用户注册表。

答案 1 :(得分:1)

两件事:

  1. 您可以使用组策略推送DSN更改
  2. 只要您更改它,将其更改为使用CNAME以便将来移动(并且将来会有移动)只是在一个地方进行DNS更改而不是您需要的无数客户端计算机更改追查。