PowerTip: Find the Type of an Object


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 

Comments (4)

  1. JacekZ says:

    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

  2. Ed Wilson says:

    @JacekZ that is cool. Thank you for sharing.

  3. Chen V says:

    (Get-Date).GetType()

  4. JacekZ says:

    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  

Skip to main content