I don’t remember who mentioned it, but someone in the PowerShell community recently tweeted that they had been working with PowerShell for 10 years and had just learned something new. It wasn’t new to me, but I’m sure there are things out there I’ve yet to encounter. I sure hope so, anyway!
This individual didn’t realize that variables in PowerShell have descriptions. Did you know that!? Here are a few examples of different uses. Eventually, we’ll get to the description property, as well as all the properties you get every time you create a variable in PowerShell.
[PS7.1.5][C:\] $Variable = 'This is a string variable.' [PS7.1.5][C:\] $Variable This is a string variable. [PS7.1.5][C:\] [PS7.1.5][C:\] Get-Variable -Name Variable -ValueOnly This is a string variable. [PS7.1.5][C:\] [PS7.1.5][C:\] (Get-Variable -Name Variable).Value This is a string variable. [PS7.1.5][C:\] [PS7.1.5][C:\] Get-Variable -Name Variable Name Value ---- ----- Variable This is a string variable. [PS7.1.5][C:\] Get-Variable -Name Variable | Select-Object -Property * PSPath : Microsoft.PowerShell.Core\Variable::Variable PSDrive : Variable PSProvider : Microsoft.PowerShell.Core\Variable PSIsContainer : False Name : Variable Description : Value : This is a string variable. Visibility : Public Module : ModuleName : Options : None Attributes : {} [PS7.1.5][C:\]
There it is… Description. Let’s add one and then return it!
[PS7.1.5][C:\] Set-Variable -Name Variable -Description 'This is the description property of a string variable.' [PS7.1.5][C:\] (Get-Variable -Name Variable).Description This is the description property of a string variable.
If you didn’t know this either, then just maybe this is exciting for you, too! I liked it when I first found it. I will link an old post below that I wrote about variable descriptions the first time around. It may be much of what was presented here already. There’s another post I wish I could find, but I think it was posted on another website and it has since been lost. Somebody on some forum wanted to know the last value that a variable contained and so I wrote a post about storing the variable’s previous value in the description property each time the variable was updated to something new. That’s was fun, and unique!