Logo What the Shell?!

Unwrapping the $PSCmdlet variable

Mar 24, 2019 - 1 minute read

I’m sure we’ve all seen it in code online. We’re checking out some code, probably on Github, and we notice folks using this strange $PScmdlet thing. When I first started I considered this variable “black magic”, and really after getting used to it and what it does I still kinda feel like that’s what it is. But let’s dive in and unwrap it so we can see how the magic trick actually works.

$PSCmdlet is used in advanced functions and is derived from the [System.Management.Automation.PSCmdlet] base class in .Net. In order this parameter “automatically”, you’ll need to ensure that you have [CmdletBinding()] declared just above your Param() block.