Author Posts

July 28, 2017 at 2:59 pm

I have recently started using custom objects inside a few of my PowerShell scripts. Upon looking around online I noticed that there are two ways to create these objects

 $Obj1 = New-Object System.Object 
 $Obj2 = New-Object PSObject 

They both have the functionality that I needed, such as setting custom properties for necessary information to be held.

My question is, is there a necessary time to use one of them over the other? I found an article on Technet that seems to be heading in the right direction to giving an answer to this question, but I haven't been able to wrap my mind around it. Link is below.

Technet Link


July 28, 2017 at 3:13 pm

Hey there Cory,

This might help a little more in getting your head wrapped around it.

Custom object gotchas

July 28, 2017 at 4:28 pm

Thanks Will! That article definitely helped out.

July 28, 2017 at 4:54 pm

No problem! Also, if you're looking at creating custom objects, you might want to check out PSCustomObject.

July 28, 2017 at 5:32 pm

I see this shorthand a lot:

PS C:\> [pscustomobject]@{name='joe';address='here'}

name address
---- -------
joe  here

July 28, 2017 at 6:45 pm

I saw the PSCustomObject once before yes. I believe something along these lines, pretty close to the example js posted.

$obj = [PSCustomObject]@{Property1=a; Property20=b}