Store a cmdlet's result value in a variable in Powershell
powershell
Solution
Use the `-ExpandProperty` flag of `Select-Object`
$var=Get-WSManInstance -enumerate wmicimv2/win32_process | select -expand Priority
Update to answer the other question:
Note that you can as well just access the property:
$var=(Get-WSManInstance -enumerate wmicimv2/win32_process).Priority
So to get multiple of these into variables:
$var=Get-WSManInstance -enumerate wmicimv2/win32_process
$prio = $var.Priority
$pid = $var.ProcessID
Problem
I would like to run a cmdlet and store the result's value in a variable. For example ``` C:\PS>Get-WSManInstance -enumerate wmicimv2/win32_process | select Priority ``` It lists priorities with a header. The first one for example: ``` Priority -------- 8 ``` How can i store them in a variable? I've tried: ``` $var=Get-WSManInstance -enumerate wmicimv2/win32_process | select Priority ``` Now the variable is: `@{Priority=8}` and I wanted it to be `8`. Question 2: Can I store two variables with one cmdlet? I mean store it after the pipeline. ``` C:\PS>Get-WSManInstance -enumerate wmicimv2/win32_process | select Priority, ProcessID ``` I would like to avoid this: ``` $prio=Get-WSManInstance -enumerate wmicimv2/win32_process | select Priority $pid=Get-WSManInstance -enumerate wmicimv2/win32_process | select ProcessID ```