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 ```

Original source