Every PowerShell object is of some data type. For example, the process object is an instance of System.Diagnostics.Process type.
Get-Process | Get-Member
TypeName: System.Diagnostics.Process ...
Objects that result from PowerShell commands execution belong to some data type, but this doesn’t prevent us from adding a custom type.
It becomes even more useful when we work with custom objects – System.Management.Automation.PSCustomObject.
[PSCustomObject]@{ Name = 'Object' Description = 'Object Description' }