Получить список источников данных Windows 7 ODBC через командную строку

Мне нужно получить информацию с моего компьютера, я могу получить ее с помощью PHP-скрипта, но желательно Perl-скрипта, если это возможно. В основном мне нужен список пользовательских источников данных ODBC и их URL сервера если определено.

Я видел этот ответ о том, как извлечь его из реестра с помощью PHP, но мне также нужен URL-адрес сервера.

3

Решение

Я собрал этот скрипт на Perl очень, очень быстро, но он, кажется, делает то, что вам нужно. Он помещает имя соединения в хеш в качестве ключа, а затем помещает строку сервера в качестве значения. Обратите внимание, что в соответствии с вашим вопросом это будет только выборка определенных пользователем источников (хотя было бы тривиально адаптировать для сбора системных DSN):

use warnings;
use strict;

use Win32::TieRegistry;

my $odbc_key = $Registry->{'CUser\\Software\\ODBC\\ODBC.INI'};

my %sources;

for (keys %$odbc_key) {
next if /ODBC Data Sources/;
s/\\//g;
$sources{$_} = $odbc_key->{"$_\\Server"};
}

for my $dsn (keys %sources) {
print "dsn: $dsn, server: $sources{$dsn}\n";
}

Выход:

dsn: Test, server: localhost
dsn: Blah, server: yay.blah.com
1

Другие решения

Других решений пока нет …