about_Objects
Short description
Provides essential information about objects in PowerShell.
Long description
Every action you take in PowerShell occurs within the context of objects. As data moves from one command to the next, it moves as one or more identifiable objects. An object, then, is a collection of data that represents an item. An object is made up of three types of data: the objects type, its methods, and its properties.
Types, Methods, and Properties
The object type tells what kind of object it is. For example, an object that represents a file is a FileInfo object.
The object methods are actions that you can perform on the object. For example, FileInfo objects have a CopyTo method that you can use to copy the file.
Object properties store information about the object. For example, FileInfo objects have a LastWriteTime property that stores the date and time that the file was most recently accessed.
When working with objects, you can use their methods and properties in commands to take action and manage data.
You can discover an objects properties and methods using
Get-Member or the psobject
intrinsic member.
Objects in Pipelines
When commands are combined in a pipeline, they pass information to each other as objects. When the first command runs, it sends one or more objects down the pipeline to the second command. The second command receives the objects from the first command, processes the objects, and then passes new or revised objects to the next command in the pipeline. This continues until all commands in the pipeline run.
The following example demonstrates how objects are passed from one command to the next:
Get-ChildItem C: | where { $_.PsIsContainer -eq $false } | Format-List
The first command Get-ChildItem C:
returns a file or directory object
for each item in the root directory of the file system. The file and
directory objects are passed down the pipeline to the second command.
The second command where { $_.PsIsContainer -eq $false }
uses the
PsIsContainer property of all file system objects to select only
files, which have a value of False ($false
) in their PsIsContainer
property. Folders, which are containers and, thus, have a value of
True ($true
) in their PsIsContainer property, are not selected.
The second command passes only the file objects to the third command
Format-List
, which displays the file objects in a list.