Yes exactly, There should be a shouldprocess block around anything that modifies anything. Now you minimize the impact to the user by setting the ConfirmImpact to low on unimportant changes, and High for critical stuff. The reason for this is PowerShell uses that shouldprocess block to generate the output for -verbose, -whatif, and -confirm. Verbose it just echos the message out the verbose pipeline. Whatif It echo's the message to the host, and skips everything within the shouldprocess scriptblock, and well everyone knows confirm. It's okay to not support the common parameters on a getter, but the rest really should have it
~Glenn