¿Exportar una lista de controladores de fuente de datos ODBC?

8

¿Es posible exportar un archivo CSV de la lista de nombres de controladores de bases de datos desde Create New Data Sourceel ODBC Data Source Administrator?

Administrador de fuente de datos ODBC Crear nueva fuente de datos

leeand00
fuente

Respuestas:

9

¿ Este artículo describe correctamente lo frustrado que te sientes? Obviamente no hay una manera fácil de obtener esta información ... a menos que considere actualizar para ganar 8 de una manera fácil :-(

Usé la información en este artículo para hacer un equivalente de PowerShell para usted (está en win 7, por lo que ps v2 está instalado de forma predeterminada):

get-itemproperty -path hklm:\software\odbc\odbcinst.ini\"Odbc drivers" |
get-member | 
where {$_.definition -match "installed"} |
select-object name | export-csv -noTypeInformation

Encienda PowerShell y pegue arriba (es posible que deba presionar la tecla Intro una o dos veces después de pegar). Luego le pedirá que proporcione la ruta; esta es una ruta y un archivo al que se exportarán sus datos (por ejemplo c:\temp\myDrivers.csv), presione Entrar y, si todo salió bien, se generará un archivo con la lista de controladores.

Editar: esto le dará adicionalmente la versión y el dll utilizado.

get-itemproperty -path hklm:\software\odbc\odbcinst.ini\"Odbc drivers" |
get-member |
where {$_.definition -match "installed"} |
foreach-object { get-itemproperty -path $("hklm:\software\odbc\odbcinst.ini\"+ $_.name)} |
select-object PSChildName,Driver|Add-member -MemberType ScriptProperty -Name FVersion -Value {(((get-item $this.Driver).versionInfo)).FileVersion} -PassThru |export-CSV -noTypeInformation
wmz
fuente
Bueno, ahí están ... así que hklm significa HKEY_LOCAL_MACHINE de fama de registro ... Estaré maldito ... y si profundizas en el registro allí, puedes descubrir cosas como lo que componen el controlador ... .y qué extensiones de archivo admite ... sin embargo ... No veo una versión del controlador ... eso es extraño ... Me pregunto dónde almacenan eso ... ¿en la DLL tal vez?
leeand00
Observé las propiedades de la DLL y debe ser de donde está obteniendo los números de versión porque coinciden con los de la ventana "Crear nueva fuente de datos". Las fechas y los nombres de las empresas también están allí.
leeand00
Por lo tanto, es posible usar algo como esto en el script (obtener el nombre del archivo del controlador primero, por supuesto ... stackoverflow.com/questions/30686/… )
leeand00
1
@ leeand00 He cambiado el script para que devuelva más datos. Tenga en cuenta que no soy un experto en PS, por lo que puede que no sea la mejor manera de codificar eso
wmz
2
En Windows 7 de 64 bits, los controladores de 32 bits se encuentran en la siguiente ruta de registro: hklm: \ software \ wow6432Node \ odbc \ odbcinst.ini Tenga en cuenta que algunos controladores encontrados aquí (material predeterminado de Microsoft), pueden no tener una clave de ruta -valor par, y causará un error al ejecutar el script de PowerShell publicado en la respuesta, por lo que habría que agregar algún manejo de errores.
cowb0y