2009-12-11 69 views
1

根據消息來源herehere,這個類應該給我一個很好的和人類可讀的應用於Windows的補丁列表。我想要的是應用於遠程機器的KB修補程序列表。有沒有人成功地使用過WMI Win32_PatchPackage類? (C#)

ManagementScope scope; 
ConnectionOptions options = new ConnectionOptions(); 
options.Username = tbUsername.Text; 
options.Password = tbPassword.Password; 
options.Authority = String.Format("ntlmdomain:{0}", tbDomain.Text); 
scope = new ManagementScope(String.Format("\\\\{0}\\root\\cimv2", tbHost.Text), options); 
scope.Connect(); 
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT * FROM Win32_PatchPackage")); 
foreach (ManagementObject queryObj in searcher.Get()) 
{ 
    wmiResults.Text += String.Format("{0}: {1} {2}\n", 
            queryObj["PatchID"], 
            queryObj["Caption"], 
            queryObj["Description"]); 
} 

相反,我得到的是這個GUID般的大雜燴。我是否在錯誤的地方尋找東西?

{0B36C6D6-F5D8-4EAF-BF94-4376A230AD5B}: {0B36C6D6-F5D8-4EAF-BF94-4376A230AD5B} {0B36C6D6-F5D8-4EAF-BF94-4376A230AD5B} 
{3D019598-7B59-447A-80AE-815B703B84FF}: {3D019598-7B59-447A-80AE-815B703B84FF} {3D019598-7B59-447A-80AE-815B703B84FF} 
{5ECEB317-CBE9-4E08-AB10-756CB6F0FB6C}: {5ECEB317-CBE9-4E08-AB10-756CB6F0FB6C} {5ECEB317-CBE9-4E08-AB10-756CB6F0FB6C} 
{69F52148-9BF6-4CDC-BF76-103DEAF3DD08}: {69F52148-9BF6-4CDC-BF76-103DEAF3DD08} {69F52148-9BF6-4CDC-BF76-103DEAF3DD08} 
{71127777-8B2C-4F97-AF7A-6CF8CAC8224D}: {71127777-8B2C-4F97-AF7A-6CF8CAC8224D} {71127777-8B2C-4F97-AF7A-6CF8CAC8224D} 
{7559E742-FF9F-4FAE-B279-008ED296CB4D}: {7559E742-FF9F-4FAE-B279-008ED296CB4D} {7559E742-FF9F-4FAE-B279-008ED296CB4D} 
...etc... 

回答

1

對於它的價值,這正是我所看到的。我在Win7和Vista機器上試過這段代碼。兩者都是64位機器。兩者都產生了大量的GUID。

我也嘗試安裝WMI工具...

http://www.microsoft.com/downloads/details.aspx?familyid=6430F853-1120-48DB-8CC5-F2ABDC3ED314&displaylang=en

...而這些顯示同樣的事情。

如果您想要枚舉機器上安裝的修補程序和修補程序,那麼您可能需要查看Win32_QuickFixEngineering類。如果你改變你的代碼,以便從該對象選擇...

ManagementObjectSearcher searcher = new ManagementObjectSearcher(new ObjectQuery("select * from Win32_QuickFixEngineering")); 

...並打印出HotFixID和說明...

Console.WriteLine("{0}: {1} : {2} \n", queryObj["HotFixID"], queryObj["Caption"], queryObj["Description"]); 

...那麼你可能會得到你之後。我看行這樣的...

KB975467: http://support.microsoft.com/?kbid=975467 :安全更新

KB975517: http://support.microsoft.com/?kbid=975517 :安全更新

KB976325: http://support.microsoft.com/?kbid=976325 :安全更新

此頁。 ..

http://msdn.microsoft.com/en-us/library/aa394596(VS.85).aspx

...有一些很好的樣本,此頁......

http://msdn.microsoft.com/en-us/library/aa394391(VS.85).aspx

...描述Win32_QuickFixEngineering類。

+0

它的工作原理,但輸出有各種各樣的奇怪。我會在另一個問題中解決他們。謝謝! – JCCyC 2009-12-14 19:58:56

+0

後續問題在這裏:http://stackoverflow.com/questions/1903611/querying-wmi-class-win32quickfixengineering-returns-mucho-weirdo-timestamps-c – JCCyC 2009-12-14 21:26:24

相關問題