about_properties

TOPIC
    about_properties

SHORT DESCRIPTION
    Describes how to use object properties in Windows PowerShell.

LONG DESCRIPTION
    Windows PowerShell uses structured collections of information called
    objects to represent the items in data stores or the state of the computer.
    Typically, you work with object that are part of the Microsoft .NET
    Framework, but you can also create custom objects in Windows PowerShell.

    The association between an item and its object is very close. When you
    change an object, you change the item that it represents. For example,
    when you get a file in Windows PowerShell, you do not get the actual file.
    Instead, you get a FileInfo object that represents the file. When you
    change the FileInfo object, the file changes too.

    Most objects have properties. Properties are the data that is associated
    with an object. This data describes the object. For example, a FileInfo
    object has a property called Length that describes the size of the file
    that is represented by the object.

Object Properties

     To list the properties of an object, use the Get-Member cmdlet. For
     example, to get the properties of a FileInfo object, use the Get-ChildItem
     cmdlet to get the FileInfo object that represents a file. Then, use a
     pipeline operator (|) to send the FileInfo object to Get-Member. The
     following command gets the PowerShell.exe file and sends it to Get-Member.
     The $Pshome automatic Variable contains the path of the Windows PowerShell
     installation directory.

         Get-ChildItem $pshome\powershell.exe | Get-Member

     The output of the command lists the members of the FileInfo object.
     Members include both properties and methods. When you work in
     Windows PowerShell, you have access to all the members of the objects.

     To get only the properties of an object and not the methods, use the
     MemberType parameter of the Get-Member cmdlet with a value of “property”,
     as shown in the following example.

         Get-ChildItem $pshome\powershell.exe | Get-Member -membertype property

            TypeName: System.IO.FileInfo

         Name             MemberType Definition
         —-             ———- ———-
         Attributes        Property System.IO.FileAttributes Attributes {get;set;}
         CreationTime     Property System.DateTime CreationTime {get;set;}
         CreationTimeUtc Property System.DateTime CreationTimeUtc {get;set;}
         Directory         Property System.IO.DirectoryInfo Directory {get;}
         DirectoryName     Property System.String DirectoryName {get;}
         Exists            Property System.Boolean Exists {get;}
         Extension         Property System.String Extension {get;}
         FullName         Property System.String FullName {get;}
         IsReadOnly        Property System.Boolean IsReadOnly {get;set;}
         LastAccessTime    Property System.DateTime LastAccessTime {get;set;}
         LastAccessTimeUtc Property System.DateTime LastAccessTimeUtc {get;set;}
         LastWriteTime     Property System.DateTime LastWriteTime {get;set;}
         LastWriteTimeUtc Property System.DateTime LastWriteTimeUtc {get;set;}
         Length            Property System.Int64 Length {get;}
         Name             Property System.String Name {get;}

     After you find the properties, you can use them in your Windows PowerShell
     commands.

Property Values

     Although every object of a specific type has the same properties, the
     values of those properties describe the particular object. For example,
     every FileInfo object has a CreationTime property, but the value of that
     property differs for each file.

     The most common way to get the values of the properties of an object is to
     use the dot method. Type a reference to the object, such as a Variable
     that contains the object, or a command that gets the object. Then, type a
     dot (.) followed by the property name.

     For example, the following command displays the value of the CreationTime
     property of the PowerShell.exe file. The Get-ChildItem command returns a
     FileInfo object that represents the PowerShell.exe file. The command is
     enclosed in parentheses to make sure that it is executed before any
     properties are accessed. The Get-ChildItem command is followed by a dot
     and the name of the CreationTime property, as follows:

         C:\PS> (Get-ChildItem $pshome\powershell.exe).creationtime
         Tuesday, March 18, 2008 12:07:52 AM

     You can also save an object in a Variable and then get its properties by
     using the dot method, as shown in the following example:

         C:\PS> $a = Get-ChildItem $pshome\powershell.exe
         C:\PS> $a.CreationTime
         Tuesday, March 18, 2008 12:07:52 AM

     You can also use the Select-Object and Format-List cmdlets to display the
     property values of an object. Select-Object and Format-List each have a
     Property parameter. You can use the Property parameter to specify one or
     more properties and their values. Or, you can use the wildcard
     character (*) to represent all the properties.

     For example, the following command displays the values of all the
     properties of the PowerShell.exe file.

         C:\PS> Get-ChildItem $pshome\powershell.exe | Format-List -property *

         PSPath            : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
         PSParentPath     : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0
         PSChildName     : powershell.exe
         PSDrive         : C
         PSProvider        : Microsoft.PowerShell.Core\FileSystem
         PSIsContainer     : False
         VersionInfo     : File:             C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
                             InternalName:     POWERSHELL
                             OriginalFilename: PowerShell.EXE.MUI
                             File Version:     6.1.6570.1 (fbl_srv_powershell(nigels).070711-0102)
                             FileDescription: PowerShell.EXE
                             Product:         Microsoft® Windows® Operating System
                             ProductVersion: 6.1.6570.1
                             Debug:            False
                             Patched:         False
                             PreRelease:     False
                             PrivateBuild:     True
                             SpecialBuild:     False
                             Language:         English (United States)

         BaseName         : powershell
         Mode             : -a—
         Name             : powershell.exe
         Length            : 160256
         DirectoryName     : C:\Windows\system32\WindowsPowerShell\v1.0
         Directory         : C:\Windows\system32\WindowsPowerShell\v1.0
         IsReadOnly        : False
         Exists            : True
         FullName         : C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
         Extension         : .exe
         CreationTime     : 3/18/2008 12:07:52 AM
         CreationTimeUtc : 3/18/2008 7:07:52 AM
         LastAccessTime    : 3/19/2008 8:13:58 AM
         LastAccessTimeUtc : 3/19/2008 3:13:58 PM
         LastWriteTime     : 3/18/2008 12:07:52 AM
         LastWriteTimeUtc : 3/18/2008 7:07:52 AM
         Attributes        : Archive

SEE ALSO
    about_objects
    Get-Member
    Select-Object
    Format-List