2011-11-17 57 views
3

我正在開發一個Linux審計應用程序,其中包括必須從Windows計算機檢索已安裝的軟件和許可證。該應用程序必須是無代理的。 WMI客戶端實際上並實現我想要什麼,我tryed查詢應用程序和它的工作只是罰款:如何從Linux查詢Windows註冊表項?

# LAUNCHING WMIC PLUGIN 
my $cmd = "wmic -U ".$username."%".$password." //".$hostname." \"select Name, Version from Win32_Product\""; 
my $output = `$cmd`; 
print "INSTALLED SOFTWARE:\n"; 
print "$output"; 

現在的問題是,我怎麼能檢索某些應用產品密鑰?我知道有時它們存儲在註冊表項中,我可以通過WMI查詢它們嗎?

編輯:剛剛發現一個網站上:

http://social.technet.microsoft.com/Forums/en/winserverGP/thread/5cd1b80a-2f90-4d46-bf65-dba52dcf0c56

WQL查詢在此基礎上提供的一組屬性的某些WMI類。 WMI註冊表操作取決於「默認」命名空間中的「StdRegProv」,並且必須調用某些方法才能獲得結果。這意味着基於WMI過濾器的註冊表查詢是不可能的。

因此它看起來像WQL不能詢問註冊表鍵,那麼我該怎麼辦?有任何想法嗎?

回答

2

我沒有任何經驗在非Windows客戶端上使用它,但有DBD::WMI

+0

據我所知,它使用WMI查詢來收集信息。註冊表項不能通過WMI查詢。 – raz3r

+0

該模塊似乎使用 使用Win32 :: WQL; 我認爲它只能用於窗戶。 – Wil