Exportando uma lista de drivers ODBC Datasource?

8

É possível exportar um arquivo CSV da lista de nomes de drivers de banco de dados a partir Create New Data Sourcede ODBC Data Source Administrator?

Administrador de fonte de dados ODBC Criar nova fonte de dados

leeand00
fonte

Respostas:

9

Será que este artigo descreve corretamente frustrado como você se sente? Obviamente, não há uma maneira fácil de obter essas informações ... a menos que você considere atualizar para ganhar 8 de uma maneira fácil :-(

Usei as informações deste artigo para fazer um PowerShell equivalente para você (você está no win 7, portanto o ps v2 é instalado por padrão):

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

Inicie o PowerShell e cole acima (talvez seja necessário pressionar a tecla Enter uma ou duas vezes depois de colar). Em seguida, será solicitado que você especifique o caminho - este é um caminho e o arquivo para o qual seus dados serão exportados (por exemplo c:\temp\myDrivers.csv) - pressione Enter - e se tudo der certo, um arquivo com a lista de drivers será produzido para você.

Edit: isso dará adicionalmente versão e dll usadas.

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
fonte
Bem, lá estão eles ... então hklm significa HKEY_LOCAL_MACHINE de fama do registro ... Eu vou ficar danado .... e se você cavar o registro lá, poderá descobrir coisas como o que as dlls compõem o driver .. .e quais extensões de arquivo ele suporta ... no entanto ... não vejo uma versão do driver ... isso é estranho ... Gostaria de saber onde eles armazenam isso ... na DLL, talvez?
precisa
Eu olhei para as propriedades da DLL e deve ser de onde ela está obtendo os números de versão, porque eles correspondem aos da janela "Criar nova fonte de dados". As datas e os nomes das empresas também estão lá.
Leeand00
Por isso é provavelmente possível usar algo como isto no script (obter o nome do arquivo do driver primeiro curso .... stackoverflow.com/questions/30686/... )
leeand00
11
@ leeand00 Alterei o script para retornar mais dados. Cuidado Não sou especialista PS por isso pode ser não melhor maneira de código que
wmz
2
No Windows 7 de 64 bits, os drivers de 32 bits são encontrados no seguinte caminho do registro: hklm: \ software \ wow6432Node \ odbc \ odbcinst.ini Observe que alguns drivers encontrados aqui (itens padrão da Microsoft) podem não ter uma chave de caminho -value pair e causará um erro ao executar o script do PowerShell publicado na resposta, portanto, será necessário adicionar alguma manipulação de erro.
cowb0y