Check What a PowerShell WhatIf Preview Actually Covers
WhatIf is useful when the command implements it correctly. It is not a sandbox that automatically prevents every write made by an unfamiliar script. Check the command's documented support and the scope of the code it calls.
Begin with a disposable folder and a harmless file named example.txt. In PowerShell on Windows, this supported cmdlet previews a rename without carrying it out:
Rename-Item -Path '.\example.txt' -NewName 'example-reviewed.txt' -WhatIf
Read the reported target and action, then confirm that the original filename remains. This small exercise establishes the behaviour of that cmdlet and command, not of every future maintenance script.
Inspect the boundary around custom code
Microsoft's ShouldProcess guide explains that SupportsShouldProcess exposes WhatIf and Confirm to a function. Code that changes state must honour the decision, commonly through a ShouldProcess check around the change.
A parameter being accepted therefore does not establish that every operation is protected. Review the script's writes, external program calls and functions in other modules. Microsoft's guide specifically warns against assuming WhatIf preferences always propagate correctly between script modules.
Ask the author which actions the preview covers and how that was tested. Do not run an unfamiliar destructive script against real data merely because its command line ends with WhatIf.
Check the preview's meaning before execution
Use a controlled test copy or suitable isolated test environment for a custom workflow. Compare its state before and after the preview, including files it may create for logs or temporary work. The expected observation is the documented preview behaviour, with any permitted side effects understood.
Review the proposed targets as carefully as the operation. A correctly implemented preview can faithfully show the wrong folder if you supplied the wrong path.
Keep the preview command and output with the eventual change plan. Before a real run, recheck the current targets and required backup; the environment may have changed since the preview. WhatIf helps explain intended operations, while code review and a representative test establish whether the particular workflow respects that promise.
Sources: Microsoft ShouldProcess guide; Microsoft Rename-Item parameters.