Exercise 1: Simplified vs. Script-Block Where-Object — Possible Solution ==================================================================== THE DIFFERENCE BETWEEN THE TWO FORMS ------------------------------ Get-Process | Where-Object CPU -gt 100 uses the simplified syntax: a bare property name, an operator, and a value, with no $_ needed. Get-Process | Where-Object { $_.CPU -gt 100 -and $_.Id -ne 0 } uses the script-block syntax: a full expression inside { }, referencing the current object explicitly via $_. WHY THE SECOND CONDITION REQUIRES THE SCRIPT-BLOCK FORM ------------------------------ Per this chapter, the simplified syntax only supports a single property comparison - one property, one operator, one value. The moment two conditions need to be combined with -and (or -or), there is no simplified-syntax equivalent - -and is only valid inside the script-block form. Since the exercise's own second example combines "$_.CPU -gt 100" with "$_.Id -ne 0" using -and, it structurally cannot be expressed as a simplified-syntax filter; it requires $_ and the { } script-block form. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly identifies both syntaxes by name, correctly explains that the simplified form only supports one comparison, and correctly connects the -and combination in the second example to why only the script-block form can express it.