Get-GPRegistryValue 
	Gets one or more registry-based policy settings under either Computer Configuration or User Configuration in a GPO.
Syntax
		GetByGUID (Default)
	 
	Get-GPRegistryValue
    -Guid <Guid>
    -Key <String>
    [-ValueName <String>]
    [-Domain <String>]
    [-Server <String>]
    [<CommonParameters>]
	
		GetByName
	 
	Get-GPRegistryValue
    [-Name] <String>
    -Key <String>
    [-ValueName <String>]
    [-Domain <String>]
    [-Server <String>]
    [<CommonParameters>]
	Description
The Get-GPRegistryValue cmdlet retrieves one or more registry-based policy settings under either
Computer Configuration or User Configuration in a Group Policy Object (GPO).
You can get registry-based policy settings for a specific registry value, or for all the registry values under a key:
To get the registry-based policy setting that configures a specific registry value, specify both the Key and the ValueName parameters.
To get all the registry-based policy settings that configure values directly under a registry key, specify the Key parameter without the ValueName parameter.
If you specify only a key, in addition to the policy settings that configure values under the key, the following first-level subkeys of the key are returned:
first-level subkeys that have a policy setting that configures a value.
first-level subkeys that have a subkey, at any level, with a policy setting that configures a value.
You can use this information to browse for registry-based policy settings.
Examples
Example 1: Get the group policy registry value from the specified key
$params = @{
    ValueName = 'ValueOne'
    Key       = 'HKEY_CURRENT_USER\Software\Policies\Microsoft\ExampleKey'
    Name      = 'TestGPO'
}
Get-GPRegistryValue @params
KeyPath     : Software\Policies\Microsoft\ExampleKey
FullKeyPath : HKEY_CURRENT_USER\Software\Policies\Microsoft\ExampleKey
Hive        : CurrentUser
PolicyState : Set
Value       : TestGPO
Type        : String
ValueName   : ValueOne
HasValue    : True
This command gets the registry-based policy setting that configures the registry value
HKEY_CURRENT_USER\Software\Policies\Microsoft\ExampleKey:ValueOne from User Configuration in the
GPO named TestGPO.
Example 2: Get all group policy registry values from the specified key
Get-GPRegistryValue -Name "TestGPO" -Key "HKCU\Software\Policies\Microsoft\ExampleKey"
KeyPath     : Software\Policies\Microsoft\ExampleKey
FullKeyPath : HKEY_CURRENT_USER\Software\Policies\Microsoft\ExampleKey
Hive        : CurrentUser
PolicyState : Set
Value       : TestGPO
Type        : String
ValueName   : ValueOne
HasValue    : True
KeyPath     : Software\Policies\Microsoft\ExampleKey
FullKeyPath : HKEY_CURRENT_USER\Software\Policies\Microsoft\ExampleKey
Hive        : CurrentUser
PolicyState : Delete
Value       :
Type        : String
ValueName   : ValueTwo
HasValue    : True
KeyPath     : Software\Policies\Microsoft\ExampleKey\Subkey1
FullKeyPath : HKEY_CURRENT_USER\Software\Policies\Microsoft\ExampleKey\Subkey1
Hive        : CurrentUser
KeyPath     : Software\Policies\Microsoft\ExampleKey\SubKey2
FullKeyPath : HKEY_CURRENT_USER\Software\Policies\Microsoft\ExampleKey\SubKey2
Hive        : CurrentUser
This command gets all the registry-based policy settings that configure registry values under the
key HKEY_CURRENT_USER\Software\Policies\Microsoft\ExampleKey from User Configuration in the GPO
named TestGPO. Subkeys of this key that have registry-based policy settings, are also returned.
The second registry-based policy setting (ValueTwo) is disabled (its PolicyState property is set
to Delete).
Parameters
-Domain
Specifies the ___domain for this cmdlet. You must specify the fully qualified ___domain name (FQDN) of the ___domain (for instance: sales.contoso.com).
For the Get-GPRegistryValue cmdlet, the GPO for which to get registry-based policy settings must
exist in this ___domain.
If you do not specify the Domain parameter, the ___domain of the user that is running the current session is used. If the cmdlet is being run from a computer startup or shutdown script, the ___domain of the computer is used. For more information, see the Notes section in the full Help.
If you specify a ___domain that is different from the ___domain of the user that is running the current session (or, for a startup or shutdown script, the computer), a trust must exist between that ___domain and the ___domain of the user or the computer.
You can also refer to Domain by its built-in alias, DomainName. For more information, see about_Aliases.
Parameter properties
| Type: | String | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
| Aliases: | DomainName | 
Parameter sets
(All)
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | True | 
| Value from remaining arguments: | False | 
-Guid
Specifies the GPO from which to retrieve the registry-based policy setting by its globally unique identifier (GUID). The GUID uniquely identifies the GPO.
You can also refer to the Guid parameter by its built-in alias, Id. For more information, see about_Aliases.
Parameter properties
| Type: | Guid | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
| Aliases: | Id | 
Parameter sets
					GetByGUID 
					
				 
				| Position: | Named | 
| Mandatory: | True | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | True | 
| Value from remaining arguments: | False | 
-Key
Specifies the registry key for which this cmdlet gets the registry-based policy setting. For
instance: HKLM\Software\Policies\Microsoft\Windows NT\DNSClient.
The key must be in one of the two following registry hives:
HKEY_LOCAL_MACHINE (HKLM) for a registry-based policy setting in Computer Configuration.
HKEY_CURRENT_USER (HKCU) for a registry-based policy setting in User Configuration.
You can specify:
The Key parameter without the ValueName parameter to get all the registry-based policy settings that configure values directly under that key.
The Key parameter together with the ValueName parameter to get the registry-based policy setting that configures a specific registry value.
You can also refer to the Key parameter by its built-in alias FullKeyPath. For more information, see about_Aliases.
Parameter properties
| Type: | String | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
| Aliases: | FullKeyPath | 
Parameter sets
(All)
| Position: | Named | 
| Mandatory: | True | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-Name
Specifies the GPO from which this cmdlet gets the registry-based policy setting by its display name.
The display name is not guaranteed to be unique in the ___domain. If another GPO with the same display name exists in the ___domain an error occurs. You can use the Guid parameter to uniquely identify a GPO.
You can also refer to the Name parameter by its built-in alias, DisplayName. For more information, see about_Aliases.
Parameter properties
| Type: | String | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
| Aliases: | DisplayName | 
Parameter sets
					GetByName 
					
				 
				| Position: | 0 | 
| Mandatory: | True | 
| Value from pipeline: | True | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-Server
Specifies the name of the ___domain controller that this cmdlet contacts to complete the operation. You can specify either the fully qualified ___domain name (FQDN) or the host name.
If you do not specify the name by using the Server parameter, the primary ___domain controller (PDC) emulator is contacted.
Parameter properties
| Type: | String | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
| Aliases: | DC | 
Parameter sets
(All)
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
-ValueName 
		Specifies the name of a registry value for which this cmdlet gets the registry-based policy setting.
For instance, the registry key HKLM\Software\Policies\Microsoft\Windows NT\DNSClient can have a
value with the following name: UseDomainNameDevolution. For the default value of a registry key,
specify "(default)" or an empty string ("").
You must also specify the Key parameter with this parameter.
Parameter properties
| Type: | String | 
| Default value: | None | 
| Supports wildcards: | False | 
| DontShow: | False | 
Parameter sets
(All)
| Position: | Named | 
| Mandatory: | False | 
| Value from pipeline: | False | 
| Value from pipeline by property name: | False | 
| Value from remaining arguments: | False | 
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
Inputs
Microsoft.GroupPolicy.Gpo
You can pipe a GPO for which this cmdlet gets registry-based policy settings. Collections that contain GPOs from different domains are not supported.
Outputs
Microsoft.GroupPolicy.PolicyRegistrySetting
This cmdlet returns PolicyRegistrySetting objects that represent registry-based policy settings. These objects can be piped into the following cmdlets:
Set-GPRegistryValueRemove-GPRegistryValue
Notes
The hive of the registry key that you specify (HKLM or HKCU) indicates whether the registry-based policy setting is retrieved from Computer Configuration or User Configuration.
If the specified registry key cannot be located in policy (the registry key is not configured), a corresponding error message is displayed.
You can use the Domain parameter to explicitly specify the ___domain for this cmdlet.
If you do not explicitly specify the ___domain, the cmdlet uses a default ___domain. The default ___domain is the ___domain that is used to access network resources by the security context under which the current session is running. This ___domain is typically the ___domain of the user that is running the session. For instance, the ___domain of the user who started the session by opening Windows PowerShell or the ___domain of a user that is specified in a runas command. However, computer startup and shutdown scripts run under the context of the LocalSystem account. The LocalSystem account is a built-in local account, and it accesses network resources under the context of the computer account. Therefore, when this cmdlet is run from a startup or shutdown script, the default ___domain is the ___domain to which the computer is joined.