Get the properties of a specified item.

      Get-ItemProperty { [-path] string[] | [-literalPath] string[] }
         [[-name] string[]] [-include string[]] [-exclude string[]]
            [-filter string] [-credential PSCredential]
                [-UseTransaction] [CommonParameters]

   -path string
       The path(s) to the items. Wildcards are permitted.

   -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.

   -name string
       The name(s) of the property to retrieve.
       n.b. -name '(default)' will retrieve all properties, not just the default value.

   -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.
   -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.

       Include the command in the active transaction.

Standard Aliases for Get-ItemProperty: gp

Get-ItemProperty gets the properties of an item, for example it can be used to view registry entries and their values, or the .LastAccessTime of a file.

Registry Properties

When reading the Windows Registry, some values will be available as a property rather than a key.

You can retrieve these using, either the dot notation:

[string]$osRelease = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId

or pipe into Select-Object and then expand the property required, you can also pipe into Get-Member to list the properties available:

Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | Select-Object -ExpandProperty ReleaseId


Display information about the C:\Windows directory:

PS C:\> get-itemproperty C:\Windows

Get a file and display as a list:

PS C:\> get-itemproperty C:\Test\Weather.xls | format-list

Get the File Attributes of the file demo.txt (Archive, Hidden, Normal, ReadOnly or System). Explanation of this technique here. Casting the result to Boolean gives a True/False result:

PS C:\> [bool](Get-ItemProperty C:\demo\demo.txt).attributes -bAND [io.fileattributes]::Archive
PS C:\> [bool](Get-ItemProperty C:\demo\demo.txt).attributes -bAND [io.fileattributes]::ReadOnly

Display the value name and data of each of the registry entries contained in the .NetFramework registry subkey:

PS C:\> get-itemproperty -path HKLM:\SOFTWARE\Microsoft\.NETFramework

Show the WiFi Airplane mode (0 or 1) which is a default registry value (ms-settings:network-airplanemode):

PS C:\> (Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\RadioManagement\SystemRadioState").'(default)'

You can also specify the full registry path: (the HKLM shortcut is a psdrive):

PS C:\> get-itemproperty -path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\

Store installed 32 bit and 64 bit applications into a variable:

$Apps = @()
$Apps += Get-ItemProperty "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$Apps += Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*"

Display the value name and data of a specific registry entry:

PS C:\> get-itemproperty -path HKLM:\SOFTWARE\Microsoft\.NETFramework -name "InstallRoot"

"A man who knows the price of everything and the value of nothing" ~ Oscar Wilde

Related PowerShell Cmdlets

error: Specified cast is not valid.(registry) workaround is to only read a specific key ( -name ).
Get-ChildItem - Get child items (contents of a folder or registry key).
Clear-ItemProperty - Remove the property value from a property.
Copy-ItemProperty - Copy a property along with it's value.
Get-Item - Get a file object or get a registry (or other namespace) object.
Move-ItemProperty - Move a property from one location to another.
New-ItemProperty - Set a new property of an item at a location.
Set-ItemProperty - Set a property at the specified location to a specified value.
Remove-ItemProperty - Remove a property and its value from the location.
Rename-ItemProperty - Renames a property at its location.

Copyright © 1999-2024
Some rights reserved