Vous exportez une liste de pilotes ODBC Datasource?

8

Est-il possible d'exporter un fichier CSV de la liste des noms de pilotes de base de données depuis Create New Data Sourcele ODBC Data Source Administrator?

Administrateur de source de données ODBC Créer une nouvelle source de données

leeand00
la source

Réponses:

9

Est -ce que cet article décrit correctement la frustration que vous ressentez? Évidemment, il n'y a pas de moyen facile d'obtenir ces informations ... sauf si vous envisagez de mettre à niveau pour gagner 8 de manière simple :-(

J'ai utilisé les informations de cet article pour créer un équivalent PowerShell pour vous (vous êtes sur Win 7 donc PS v2 est installé par défaut):

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

Lancez PowerShell et collez ci-dessus (vous devrez peut-être appuyer une ou deux fois sur la touche Entrée après avoir collé). Il vous demandera alors de donner le chemin - c'est un chemin et un fichier vers lequel vos données seront exportées (par exemple c:\temp\myDrivers.csv) - appuyez sur Entrée - et si tout s'est bien passé, un fichier avec une liste de pilotes sera produit pour vous.

Edit: cela donnera en plus la version et la DLL utilisées.

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
la source
Eh bien, ils sont là ... donc hklm signifie HKEY_LOCAL_MACHINE de la renommée du registre ... Je serai sacrément .... et si vous creusez dans le registre là-bas, vous pouvez découvrir des choses comme ce que les DLL composent le pilote .. .et quelles extensions de fichiers il prend en charge ... cependant ... je ne vois pas de version de pilote ... c'est étrange ... je me demande où ils le stockent ... dans la DLL peut-être?
leeand00
J'ai regardé les propriétés de la DLL et c'est là que doivent provenir les numéros de version car ils correspondent à ceux de la fenêtre "Créer une nouvelle source de données". Les dates et les noms des sociétés y figurent également.
leeand00
Il est donc probablement possible d'utiliser quelque chose comme ça dans le script (en obtenant le nom de fichier du pilote d'abord bien sûr .... stackoverflow.com/questions/30686/… )
leeand00
1
@ leeand00 J'ai changé de script pour qu'il renvoie plus de données. Attention, je ne suis pas un expert PS, donc ce n'est peut-être pas la meilleure façon de coder cela
wmz
2
Sur Windows 7 64 bits, les pilotes 32 bits se trouvent sous le chemin de registre suivant: hklm: \ software \ wow6432Node \ odbc \ odbcinst.ini Notez que certains pilotes trouvés ici (trucs Microsoft par défaut), peuvent ne pas avoir de clé Path -value pair, et provoquera une erreur lors de l'exécution du script powershell publié dans la réponse, donc une gestion des erreurs devra être ajoutée.
cowb0y