Copy Code

	Describes how to use object properties in Windows PowerShell. 

	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 

  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