Exercise 2: Why Win32_Product Is a Bad Idea — Possible Solution ==================================================================== WHY IT'S A REAL, DOCUMENTED PROBLEM ------------------------------ Per this chapter, querying Win32_Product doesn't just read data passively - the query itself triggers Windows Installer to run a consistency check against EVERY installed MSI package on the machine. This is genuinely slow (a real, measurable delay, not just a minor inefficiency) and can even trigger unexpected repair prompts on machines with a lot of software installed - a real side effect from what looks like a simple read-only query, not merely "this cmdlet is a bit slow." THE ALTERNATIVE THIS CHAPTER RECOMMENDS ------------------------------ Per this chapter, reading installed programs from the registry's own Uninstall keys instead is faster and has no such side effect: Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* - reusing the same HKLM:/HKCU: registry provider Fundamentals 2 already established, rather than going through WMI/CIM at all for this specific task. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly identifies the real side effect (a consistency check against every installed MSI, not just slowness) as the actual problem, and correctly names the registry Uninstall-key alternative this chapter specifically recommends.