System.Object or PSObject

This topic contains 5 replies, has 3 voices, and was last updated by  Cory Etmund 9 months, 4 weeks ago.

  • Author
  • #76118

    Cory Etmund

    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


  • #76121

    Will Anderson

    Hey there Cory,

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

    • #76123

      Cory Etmund

      Thanks Will! That article definitely helped out.

  • #76124

    Will Anderson

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

  • #76132


    I see this shorthand a lot:

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

    Cory Etmund

    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}

You must be logged in to reply to this topic.