PowerTip: Find the Type of an Object

PowerTip: Find the Type of an Object

  • Comments 4
  • Likes

Summary: Use Windows PowerShell to find the type of an object.

Hey, Scripting Guy! Question How can I use Windows PowerShell to easily find the type of object that is stored in a variable?

Hey, Scripting Guy! Answer Use the GetType method (which all objects have):

PS C:\> $date = get-date

PS C:\> $date.GetType()

 

IsPublic IsSerial Name                     BaseType

-------- -------- ----                             --------

True     True     DateTime                  System.ValueType 

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Thank You for great tip.

    Working with collections consider another way:

    $itms = gci

    $itms.GetType()

    IsPublic IsSerial Name                                     BaseType

    -------- -------- ----                                     --------

    True     True     Object[]                                 System.Array

    $itms | gm | select TypeName -Unique

    TypeName

    --------

    System.IO.DirectoryInfo

    System.IO.FileInfo

  • @JacekZ that is cool. Thank you for sharing.

  • (Get-Date).GetType()

  • One more thing.

    Term "Collection" in my previous comment needs clarification.

    Following expression works for "simple" collections (Array, ArrayList)

    PS C:\> [System.Collections.ArrayList]$arr = @(get-date;1;1.0;gi .)                    

    PS C:\> $arr | gm | select TypeName -u

    TypeName                                                                      

    --------          

    System.DateTime                                                              

    System.Int32                                                                  

    System.Double                                                                

    System.IO.DirectoryInfo              

    Dictionary (Key-Value) collections like hashtable needs additional step

    PS C:\> $oo = @{today = get-date;num =1; FirstFS = gi .}

    PS C:\> $oo | gm | select TypeName -u

    TypeName                                                                                        

    --------                                                                                        

    System.Collections.Hashtable                                                                    

    PS C:\> $oo | select -ExpandProperty Values | gm | select TypeName -u

    TypeName                                                                                        

    --------                                                                                        

    System.DateTime                                                                                

    System.Int32                                                                                    

    System.IO.DirectoryInfo