Powershell - Display object type get-member VS .gettype()

To support me, you can subscribe to the channel, share and like the videos, disable your ad blocker or make a donation. Thank you!

Hello,

There are two techniques for displaying the type of an object in Powershell, the .gettype() method and the Get-Member cmdlet.
But the result may differ between the two techniques with Array.

# Get a set of objects.
$AllProcess = Get-Process
# Get a single object
$FirstProcess = Get-Process | Select-Object -First 1
# Use .gettype() to get the type
$AllProcess.GetType()
# Result: Object[]
## Note: [] indicates an Array
$FirstProcess.GetType()
# Result: Process
# Use Get-Member to obtain the type
$AllProcess | Get-Member
# Result: Process
$FirstProcess | Get-Member
# Result : Process

We can see that Get-member displays the type of object contained in the Array and not the Array type unlike the .gettype() method. If we want to obtain the same behaviour as .gettype() with Get-Member, we just need to change the syntax of Get-Member

Get-Member -InputObject $AllProcess
# Result: System.Object[]

Related links