Get a file/registry object (or any other namespace object)
Syntax
Get-Item { [-path] string[] | [-literalPath] string[] }
[-include string[]] [-exclude string[]]
[-filter string] [-force] [-credential PSCredential]
[-UseTransaction] [CommonParameters]
Key
-path string
The path(s) to the items. Wildcards are permitted.
Use a dot (.) to specify the current location.
Use the wildcard (*) to specify all items in the current location.
-literalPath string
Like Path above, only the value is used exactly as typed.
No characters are interpreted as wildcards. If the path includes any
escape characters then enclose the path in single quotation marks.
-include string
Include only the specified items from the Path. e.g. "May*"
this only works when the path includes a wildcard character.
-exclude string
Omit the specified items from the Path e.g. "*SS64*"
this only works when the path includes a wildcard character.
-filter string
A filter in the provider's format or language.
The exact syntax of the filter (wildcard support etc) depends on the provider.
Filters are more efficient than -include/-exclude, because the provider
applies the filter when retrieving the objects, rather than having
PowerShell filter the objects after they are retrieved.
-force
Override restrictions that prevent the command from succeeding, apart
from security settings. e.g. Force will create file path directories
or override a files read-only attribute, but will not change file permissions.
-credential PSCredential
Use a credential to validate access to the file. Credential represents
a user-name, such as "User01" or "Domain01\User01", or a PSCredential
object, such as the one retrieved by using the Get-Credential cmdlet.
If you type a user name, you will be prompted for a password.
This parameter is not supported by any PowerShell core cmdlets or providers.
-UseTransaction
Include the command in the active transaction.
CommonParameters:
-Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
-OutBuffer -OutVariable.
Standard Aliases for Get-Item: gi
Get-Item will get registry keys and subkeys, but you must use Get-ItemProperty to get the registry values and data.
In PowerShell, use a single asterisk (*) to get contents, instead of the traditional *.*
The format is interpreted literally, so *.* would not retrieve directories or file names without a dot.
Examples
Get the current directory. This represents the item at the current location (not its contents).
PS C:\> get-item .
Get the root directory of the C: drive. This represents only the directory, not its contents:
PS C:\> get-item C:\
Get all items in the current directory. :
PS C:\> get-item *
Get all items in the C: drive:
PS C:\> get-item C:\*
List all properties of C:\Windows:
PS C:\> (Get-Item C:\Windows) | Get-Member
Get the LastAccessTime property of C:\Windows:
PS C:\> (get-item C:\Windows).LastAccessTime
Get a registry key.:
PS C:\> get-item hklm:\software\microsoft\exchange
Get the file version of a DLL:
PS C:\> (get-item "c:\windows\system32\vbscript.dll").VersionInfo.FileVersion
5.812.10240.16384
PS C:\> (get-item "c:\windows\system32\jscript.dll").VersionInfo.FileVersion
5.812.10240.16384
#If you want it, here it is, come and get it, but you better hurry 'cos it's going fast# ~ Paul McCartney
Related PowerShell Cmdlets:
Get-ChildItem - Get child items (contents of a folder or registry key).
Clear-item - Remove content from a variable or an alias.
Copy-Item - Copy an item from a namespace location.
Get-ItemProperty - Retrieve the properties of an object.
Invoke-item - Invoke an executable or open a file (START).
Move-item - Move an item from one location to another.
New-item - Create a new item in a namespace.
Set-item - Set the value of a provider pathname.
Remove-item - Remove an item.
Rename-item - Change the name of an existing item.