2009-12-11 2 views
1

소스 herehere에 따르면,이 클래스는 Windows에 적용된 멋지고 인간이 읽을 수있는 패치 목록을 제공합니다. 내가 원했던 것은 원격 컴퓨터에 적용된 KB 패치 목록입니다.누구나 WMI Win32_PatchPackage 클래스를 성공적으로 사용 했습니까?

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 mechine에서 시도했다. 둘 다 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

+0

후속 질문 : http://stackoverflow.com/questions/1903611/querying-wmi-class-win32quickfixengineering-returns-mucho-weirdo-timestamps-c – JCCyC

관련 문제