Dlaczego wyliczanie zainstalowanych pakietów MSI jest tak powolne?

To jest kontynuacja tegopytanie.

Używam tego nieco zmodyfikowanego skryptu do wyliczenia wszystkich zainstalowanych pakietów MSI:

strComputer = "."

Set objWMIService = GetObject("winmgmts:" & _
    "{impersonationLevel=impersonate}!\\" & _
    strComputer & _
    "\root\cimv2")

Set colSoftware = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_Product")   

If colSoftware.Count > 0 Then
    For Each objSoftware in colSoftware
        WScript.Echo objSoftware.Caption & vbtab & _
        objSoftware.Version
    Next
Else
    WScript.Echo "Cannot retrieve software from this computer."
End If

Zaskakujące jest jednak jego fatalne zachowanie. Wyliczenie 34 zainstalowanych pakietów MSI na moim pudełku XP zajmuje od 3 do 5 minut!

Dla porównania, skrzynka z Linuksem, która siedzi poza tym, bierze 7s do wyliczenia ponad 1400 RPM ...westchnienie

Jakieś wskazówki na ten temat?

questionAnswers(5)

yourAnswerToTheQuestion