Exercise 2: Get-Member and the CPU Property — Possible Solution ==================================================================== HOW THIS CONNECTS BACK TO CHAPTER 1 ------------------------------ Chapter 1's "Get-Process | Sort-Object CPU -Descending" example used CPU as a property to sort by without explaining, at the time, how anyone would know CPU was available. Get-Process | Get-Member -MemberType Property answers that directly: piping Get-Process's own output into Get-Member lists every real property that a process object actually has - and CPU appears right there in that list ("CPU double CPU {get;}"), alongside Id, ProcessName, WorkingSet, and dozens of others. HOW YOU'D HAVE CONFIRMED IT WITHOUT ALREADY KNOWING IT ------------------------------ Rather than taking Chapter 1's use of CPU on faith, running Get-Process | Get-Member -MemberType Property before attempting the sort would have shown CPU listed as a genuine property on the object type System.Diagnostics.Process - confirming it was a real, sortable property rather than a guess or a coincidence that it happened to work. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly explains that Get-Member lists an object's real properties, correctly identifies that CPU shows up in that list for process objects, and correctly describes the general discovery process (pipe into Get-Member before assuming a property exists) rather than just repeating that CPU happens to work.