Edit

Share via


Remove-GPRegistryValue

Removes one or more registry-based policy settings from either Computer Configuration or User Configuration in a GPO.

Syntax

Remove-GPRegistryValue
      [-Guid] <Guid>
      [-Key] <String>
      [[-ValueName] <String>]
      [[-Domain] <String>]
      [[-Server] <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-GPRegistryValue
      [-Name] <String>
      [-Key] <String>
      [[-ValueName] <String>]
      [[-Domain] <String>]
      [[-Server] <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

The Remove-GPRegistryValue cmdlet removes one or more registry-based policy settings from either Computer Configuration or User Configuration in a Group Policy Object (GPO). You can specify the GPO by its display name or by its GUID.

You can specify either a key or a value:

  • If you specify a key, registry-based policy settings that configure any of its first-level values are removed. However, if there are registry-based policy settings that configure any subkeys or their values, an error occurs and no policy settings are removed, including those for first-level values of the key. For a key, specify the Key parameter without the ValueName parameter.

  • If you specify a value, the registry-based policy setting that configures that registry value is removed. For a value, specify the Key parameter without the ValueName parameter.

This cmdlet can take input from the pipeline:

  • You can pipe GPO objects to this cmdlet to remove a specified registry-based policy setting from one or more GPOs.

  • You can pipe PolicyRegistrySetting objects to this cmdlet to remove one or more registry-based policy settings from a specified GPO.

Examples

Example 1: Remove a registry-based policy setting under the specified registry key

$params = @{
    Name      = 'TestGPO'
    Key       = 'HKCU\Software\Policies\Microsoft\Windows\Control Panel\Desktop'
    ValueName = 'ScreenSaveTimeOut'
}
Remove-GPRegistryValue @params

DisplayName      : TestGPO
DomainName       : contoso.com
Owner            : CONTOSO\Domain Admins
Id               : 35c12ab3-956c-45d5-973b-46b17d225f47
GpoStatus        : AllSettingsEnabled
Description      :
CreationTime     : 2/24/2009 4:41:03 PM
ModificationTime : 2/25/2009 12:45:52 PM
UserVersion      : AD Version: 4, SysVol Version: 4
ComputerVersion  : AD Version: 34, SysVol Version: 34
WmiFilter        :

This command removes the registry-based policy setting for the registry value HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop ScreenSaveTimeout from the GPO named TestGPO. The registry value is no longer modified when the GPO is applied on a client. Removing a policy setting does not delete the registry value on a client. To delete the registry value when the GPO is applied on a client, you must disable the policy setting by using the Set-GPRegistryValue cmdlet.

Example 2: Remove all the registry-based policy settings under the specified registry key

Remove-GPRegistryValue -Name "TestGPO" -Key "HKCU\Software\Policies\Microsoft\ExampleKey"

This command removes all the registry-based policy settings that configure first-level registry values under the key HKEY_CURRENT_USER\Software\Policies\Microsoft\ExampleKey from User Configuration in the GPO named TestGPO. If there are registry-based policy settings in User Configuration that configure registry values for any subkeys of this key, an error occurs and no first-level policy settings are removed.

Parameters

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Domain

Specifies the ___domain for this cmdlet. You must specify the fully qualified ___domain name (FQDN) of the ___domain.

For the Remove-GPRegistryValue cmdlet, the GPO from which to remove the registry-based policy setting 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 the Domain parameter by its built-in alias, DomainName. For more information, see about_Aliases.

Type:String
Aliases:DomainName
Position:3
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Guid

Specifies the GPO from which to remove 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.

Type:Guid
Aliases:Id
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Key

Specifies a registry key for which to remove one or more registry-based policy settings (for instance: HKLM\Software\Policies\Microsoft\WindowsNT\DNSClient\UseDomainNameDevolution).

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.

The Key parameter can be specified with or without the ValueName parameter:

  • If the ValueName parameter is specified, the registry-based policy setting that configures that registry value is removed.

  • If the ValueName parameter is not specified, all registry-based policy settings that configure any of the first-level values of the registry key are removed. If there are registry-based policy settings that configure any subkeys or their values, an error occurs.

You can also refer to the Key parameter by its built-in alias, FullKeyPath.

Type:String
Aliases:FullKeyPath
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Specifies the GPO from which to remove 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.

Type:String
Aliases:DisplayName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

You can also refer to the Server parameter by its built-in alias, DC.

Type:String
Aliases:DC
Position:4
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ValueName

Specifies the name of the registry value for which to remove the registry-based policy setting. If you specify the ValueName parameter, you must also specify the Key parameter.

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

Microsoft.GroupPolicy.Gpo

Microsoft.GroupPolicy.PolicyRegistrySetting

You can pipe a GPO from which to remove a registry-based policy setting, or a PolicyRegistrySetting object that represents a registry-based policy setting. Collections that contain GPOs from different domains are not supported.

Outputs

Microsoft.GroupPolicy.Gpo

This cmdlet returns the GPO from which the registry-based policy setting (or settings) has been removed.

Notes

  • The hive of the registry key that you specify -- HKEY_LOCAL_MACHINE (HKLM) or HKEY_CURRENT_USER (HKCU) indicates whether the registry-based policy setting is removed from Computer Configuration or User Configuration.

    If a value for the registry key cannot be located (the registry key is not configured) or if subkeys are present, an error occurs and 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 from the Program Files menu, 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.