¿Hay alguna manera de exportar todos los DSN del sistema ODBC desde una máquina con Windows 2003?Exportación de DSN del sistema ODBC desde una máquina con Windows 2003?
Respuesta
La información del sistema DSN se almacena bajo la clave de registro HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
. Puede exportar esa clave a un archivo .reg e importarla en otra máquina.
ACTUALIZACIÓN:
También puede hacerlo mediante programación. Aquí están algunos ejemplos:
http://www.codeproject.com/KB/database/DSNAdmin.aspx
Los DSN del sistema se almacenan en el registro de Windows en HKLM\Software\ODBC\ODBC.INI
nodo Así que si exporta este nodo a un archivo * .reg y ejecuta este archivo reg en una máquina de destino, debería funcionar.
La única cosa, este archivo de registro contendrá algunas rutas de archivos, que quizá equipo específico, por ejemplo c:\WINNT\System32\bla-bla-bla.dll
incluye carpeta WINNT el que el equipo de destino puede ser llamado como WINDOWS
. Por lo tanto, deberá dedicar un poco de tiempo para asegurarse de que todas las rutas del archivo * .reg sean correctas para la máquina de destino donde finalmente importaría.
Si no puede encontrar los registros no, dependiendo de si son DSN de usuario/DSN de sistema, que puede muy voluntad estar en:
[HKEY_USERS \ "usuario SID ('No busque esto, será un largo número ) \ Software \ ODBC \ ODBC.INI]
que acabo de hacer esto mismo con un guión muy simple bate para las fuentes ODBC de 32 bits
regedit /e c:\backup\odbc.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI"
y de las fuentes de 64 bits o si usted está en un sistema operativo de 32 bits :
regedit /e c:\backup\odbc.reg "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI"
Esto hace una copia de seguridad de todos los DSN, pero puede especificar el DNS que desee.
En Windows Server 64 bit es "HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBC.INI" – Darren
escribí algunas funciones de PowerShell para copiar las conexiones ODBC desde un ordenador a otro, que se publican (y mantenerse actualizados) en:
http://powershell.com/cs/media/p/32510.aspx
# Usage:
# $srcConfig = Get-OdbcConfig srcComputerName
# Import-OdbcConfig trgComputerName $scrConfig
# Only returns data when setting values
function Get-OdbcConfig {
param($srcName)
if (Test-Connection $srcName -Count 1 -Quiet) {
# cycle through the odbc and odbc32 keys
$keys = "SOFTWARE\ODBC\ODBC.INI", "SOFTWARE\Wow6432Node\ODBC\ODBC.INI"
foreach ($key in $keys){
# open remote registry
$type = [Microsoft.Win32.RegistryHive]::LocalMachine
$srcReg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($type, $srcName)
$OdbcKey = $srcReg.OpenSubKey($key)
# red through each key
foreach ($oDrvr in $OdbcKey.GetSubKeyNames()){
# form the key path
$sKey = $key + "\" + $oDrvr
$oDrvrKey = $srcReg.OpenSubKey($sKey)
# cycle through each value, capture the key path, name, value and type
foreach ($oDrvrVal in $oDrvrKey.GetValueNames()) {
$regObj = New-Object psobject -Property @{
Path = $sKey
Name = $oDrvrVal
Value = $oDrvrKey.GetValue($oDrvrVal)
Type = $oDrvrKey.GetValueKind($oDrvrVal)
}
# dump each to the console
$regObj
}
}
}
}
# can't ping
else { Write-Host "$srcName offline" }
}
function Import-OdbcConfig {
param($trgName, $srcConfig)
if (Test-Connection $trgName -Count 1 -Quiet) {
# open remote registry
$type = [Microsoft.Win32.RegistryHive]::LocalMachine
$trgReg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($type, $trgName)
# sort out the key paths and cycle through each
$paths = $srcConfig | select -Unique Path
foreach ($key in $paths){
# check for the key and create it if it's not there
if (! $trgReg.OpenSubKey($key.Path)) { $writeKey = $trgReg.CreateSubKey($key.Path) }
# open the path for writing ($true)
$trgKey = $trgReg.OpenSubKey($key.Path, $true)
# cycle through each value, check to see if it exists, create it if it doesn't
foreach ($oDrvr in $srcConfig | where { $_.Path -eq $key.Path }) {
if (! $trgKey.GetValue($oDrvr.Name)) {
$oType = $oDrvr.Type
$writeValue = $trgKey.SetValue($oDrvr.Name, $oDrvr.Value, [Microsoft.Win32.RegistryValueKind]::$oType )
$objObj = new-object psobject -Property @{
Path = $oDrvr.Path
Name = $oDrvr.Name
Value = $trgKey.GetValue($oDrvr.Name)
Type = $trgKey.GetValueKind($oDrvr.Name)
}
}
$objObj
}
}
}
# can't ping
else { Write-Host "$srcName offline" }
}
El uso de estas funciones, juntos, pueden copiar todos uno ordenadores conexiones ODBC a otro:
$ srcConfig = Get-ODBCConfig srcComputerName
importación-ODBCConfig trgComputerName $ scrConfig
Es posible incluir únicamente la conexión preferida ODBC mediante el filtrado en el camino:
Import-OdbcConfig trgComputerName ($scrKeys | where { $_.Path -eq "SOFTWARE\ODBC\ODBC.INI\GoodDatabase" })
o filtrado a cabo las conexiones ODBC que no le gusta:
Import-OdbcConfig trgComputerName ($scrKeys | where { $_.Path -ne "SOFTWARE\ODBC\ODBC.INI\DatabaseIHate" })
Importación-ODBCConfig sólo devuelve los datos al establecer valores o no puede hacer ping al objetivo, si no hay nada que crear, no dirá nada.
- 1. Conexión DSN-less con PHP ODBC usando el controlador MDBTools
- 2. crear un nuevo DSN de usuario ODBC con Delphi
- 3. Windows Server (2003/2008) como una máquina de desarrollo?
- 4. ¿Cómo creo una entrada de ODBC DSN usando C#?
- 5. ¿Cómo creo un DSN para ODBC en Linux?
- 6. Configuración de PostgreSQL ODBC en Windows
- 7. Desarrollo de Remote C en una máquina UNIX desde una máquina con Windows que usa eclipse
- 8. ¿Cómo puedo usar el escritorio remoto para una máquina con Windows desde una máquina con Linux?
- 9. Delphi 2009 e Informix dbExpress con Windows 2003
- 10. ¿Cómo puedo ejecutar una aplicación OpenGL instalada en una máquina Linux desde mi máquina Windows?
- 11. Formas comunes de conectarse a odbc desde python en Windows?
- 12. Interoperabilidad de Office: desarrollo con PIA 2003 en una máquina con Office 2007
- 13. Instalando NodeJS en una máquina con Windows?
- 14. CTRL + V desde el símbolo del sistema de Windows?
- 15. ¿Puedo usar LINQ2SQL con ODBC?
- 16. Apagar la máquina de Windows desde el terminal de linux
- 17. Cómo conectarse desde una máquina de invitado de VMware al servidor instalado en una máquina de host de Windows 7?
- 18. Usar ssh desde el símbolo del sistema de Windows
- 19. ¿Cómo se crea programáticamente un DSN del sistema con Powershell o .NET?
- 20. 64 bits ODBC Excepción
- 21. Con VBA, busque la versión del controlador ODBC de MySQL instalado en Windows
- 22. Iniciar Visual Studio desde un símbolo del sistema
- 23. ¿Cómo eliminar completamente Python de una máquina con Windows?
- 24. Exportación de datos desde una YUI DataTable
- 25. Exportación de una función C nativa desde una DLL .net?
- 26. Conexión MySQL usando ODBC (5.1) con SSL
- 27. ODBC ConnectionString
- 28. Copiar automáticamente archivos de una máquina Linux a una máquina con Windows
- 29. Exportación de una carpeta zope con python
- 30. Conectar carriles de aplicación a SQL Server 2005 desde Windows
Gracias Garett por su respuesta! – Zaffiro
¿Esto depende de la versión del servidor que está exportando? ¿Qué sucede si estoy exportando a un servidor de Windows 2008? –
@KyleJohnson Creo que esto funcionará con Windows 2008, pero no tengo una versión de 2008 para verificar esto en este momento. He verificado esto en Windows 7 de 64 bits si eso ayuda en absoluto. – Garett