Eine Liste der ODBC-Datenquellentreiber exportieren?

8

Ist es möglich , eine CSV - Datei aus der Liste der Datenbanktreiber Namen aus dem Export Create New Data Sourcevon dem ODBC Data Source Administrator?

ODBC-Datenquellenadministrator Neue Datenquelle erstellen

leeand00
quelle

Antworten:

9

Hat dieser Artikel korrekt beschreibt , wie frustriert Sie das Gefühl? Offensichtlich gibt es keine einfache Möglichkeit, diese Informationen zu erhalten ... es sei denn, Sie erwägen ein Upgrade, um 8 zu gewinnen, auf einfache Weise :-(

Ich habe die Informationen in diesem Artikel verwendet, um ein Powershell-Äquivalent für Sie zu erstellen (Sie sind auf Win 7, daher ist ps v2 standardmäßig installiert):

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

Starten Sie Powershell und fügen Sie es oben ein (möglicherweise müssen Sie nach dem Einfügen ein- oder zweimal die Eingabetaste drücken). Sie werden dann aufgefordert, einen Pfad anzugeben - dies ist ein Pfad und eine Datei, in die Ihre Daten exportiert werden (z. B. c:\temp\myDrivers.csv) - drücken Sie die Eingabetaste - und wenn alles gut gelaufen ist, wird eine Datei mit einer Treiberliste für Sie erstellt.

Bearbeiten: Dies gibt zusätzlich Version und DLL verwendet.

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
quelle
Nun, da sind sie ... also steht hklm für HKEY_LOCAL_MACHINE von Registry Fame ... Ich werde verdammt sein ... und wenn Sie dort in die Registry graben, können Sie Dinge herausfinden, wie die DLLs den Treiber ausmachen. .und welche Dateierweiterungen werden unterstützt ... aber ... ich sehe keine Treiberversion ... das ist seltsam ... ich frage mich, wo sie das speichern ... vielleicht in der DLL?
leeand00
Ich habe mir die Eigenschaften der DLL angesehen und dort müssen die Versionsnummern abgerufen werden, da sie mit denen im Fenster "Neue Datenquelle erstellen" übereinstimmen. Dort finden Sie auch die Daten und Firmennamen.
leeand00
Es ist also wahrscheinlich möglich, so etwas im Skript zu verwenden (natürlich zuerst den Dateinamen des Treibers
abrufen
1
@ leeand00 Ich habe das Skript geändert, damit mehr Daten zurückgegeben werden. Vorsicht, ich bin kein PS-Experte, daher ist es möglicherweise nicht der beste Weg, das zu codieren
wmz
2
Unter Windows 7 64-Bit befinden sich die 32-Bit-Treiber unter dem folgenden Registrierungspfad: hklm: \ software \ wow6432Node \ odbc \ odbcinst.ini Beachten Sie, dass einige hier gefundene Treiber (standardmäßige Microsoft-Inhalte) möglicherweise keinen Pfadschlüssel haben -Wertpaar und verursacht einen Fehler beim Ausführen des in der Antwort angegebenen Powershell-Skripts, sodass eine Fehlerbehandlung hinzugefügt werden müsste.
Cowb0y