2016-11-22 81 views
3

我需要從我的計算機中檢索信息,如果可能,我可以通過PHP腳本獲取它,但最好是使用Perl腳本。基本上我需要用戶定義的ODBC數據源列表和他們的服務器URL(如果定義的話)。通過命令行獲取Windows 7 ODBC數據源列表

我看到this answer關於如何使用PHP從註冊表中提取它,但我也需要服務器URL。

回答

1

我非常非常快速地將這個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

這是完美的,我是試圖在PHP中做它,閱讀註冊表,但我只能列出來源。 – nessa