# win_regedit – Add, change, or remove registry keys and values

- Synopsis

- Parameters

- Notes

- See Also

- Examples

- Return Values

- Status

## Synopsis

- Add, modify or remove registry keys and values.

- More information about the windows registry from Wikipedia https://en.wikipedia.org/wiki/Windows_Registry.

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---

data
string

Value of the registry entry `name` in `path`.
If not specified then the value for the property will be null for the corresponding `type`.
Binary and None data should be expressed in a yaml byte array or as comma separated hex values.
An easy way to generate this is to run `regedit.exe` and use the export option to save the registry values to a file.
In the exported file, binary value will look like `hex:be,ef,be,ef`, the `hex:` prefix is optional.
DWORD and QWORD values should either be represented as a decimal number or a hex value.
Multistring values should be passed in as a list.
See the examples for more details on how to format this data.

delete_key
boolean
added in 2.4

Choices:
- no
- yes ←

When `state` is 'absent' then this will delete the entire key.
If `no` then it will only clear out the '(Default)' property for that key.

hive
path
added in 2.5

A path to a hive key like C:\Users\Default\NTUSER.DAT to load in the registry.
This hive is loaded under the HKLM:\ANSIBLE key which can then be used in name like any other path.
This can be used to load the default user profile registry hive or any other hive saved as a file.
Using this function requires the user to have the `SeRestorePrivilege` and `SeBackupPrivilege` privileges enabled.

name string |  | Name of the registry entry in the above `path` parameters. If not provided, or empty then the '(Default)' property for the key will be used. aliases: entry
path string / required |  | Name of the registry path. Should be in one of the following registry hives: HKCC, HKCR, HKCU, HKLM, HKU. aliases: key

state
string

Choices:
- absent
- present ←

The state of the registry entry.

type
string

Choices:
- binary
- dword
- expandstring
- multistring
- string ←
- qword

The registry value data type.
aliases: datatype

## Notes

Note

- Check-mode `-C/--check` and diff output `-D/--diff` are supported, so that you can test every change against the active configuration before applying changes.

- Beware that some registry hives (`HKEY_USERS` in particular) do not allow to create new registry paths in the root folder.

- Since ansible 2.4, when checking if a string registry value has changed, a case-sensitive test is used. Previously the test was case-insensitive.

## See Also

See also

win_reg_stat – Get information about Windows registry keys

  The official documentation on the win_reg_stat module.

win_regmerge – Merges the contents of a registry file into the Windows registry

  The official documentation on the win_regmerge module.

## Examples

    - name: Create registry path MyCompany
      win_regedit:
        path: HKCU:\Software\MyCompany

    - name: Add or update registry path MyCompany, with entry 'hello', and containing 'world'
      win_regedit:
        path: HKCU:\Software\MyCompany
        name: hello
        data: world

    - name: Add or update registry path MyCompany, with dword entry 'hello', and containing 1337 as the decimal value
      win_regedit:
        path: HKCU:\Software\MyCompany
        name: hello
        data: 1337
        type: dword

    - name: Add or update registry path MyCompany, with dword entry 'hello', and containing 0xff2500ae as the hex value
      win_regedit:
        path: HKCU:\Software\MyCompany
        name: hello
        data: 0xff2500ae
        type: dword

    - name: Add or update registry path MyCompany, with binary entry 'hello', and containing binary data in hex-string format
      win_regedit:
        path: HKCU:\Software\MyCompany
        name: hello
        data: hex:be,ef,be,ef,be,ef,be,ef,be,ef
        type: binary

    - name: Add or update registry path MyCompany, with binary entry 'hello', and containing binary data in yaml format
      win_regedit:
        path: HKCU:\Software\MyCompany
        name: hello
        data: [0xbe,0xef,0xbe,0xef,0xbe,0xef,0xbe,0xef,0xbe,0xef]
        type: binary

    - name: Add or update registry path MyCompany, with expand string entry 'hello'
      win_regedit:
        path: HKCU:\Software\MyCompany
        name: hello
        data: '%appdata%\local'
        type: expandstring

    - name: Add or update registry path MyCompany, with multi string entry 'hello'
      win_regedit:
        path: HKCU:\Software\MyCompany
        name: hello
        data: ['hello', 'world']
        type: multistring

    - name: Disable keyboard layout hotkey for all users (changes existing)
      win_regedit:
        path: HKU:\.DEFAULT\Keyboard Layout\Toggle
        name: Layout Hotkey
        data: 3
        type: dword

    - name: Disable language hotkey for current users (adds new)
      win_regedit:
        path: HKCU:\Keyboard Layout\Toggle
        name: Language Hotkey
        data: 3
        type: dword

    - name: Remove registry path MyCompany (including all entries it contains)
      win_regedit:
        path: HKCU:\Software\MyCompany
        state: absent
        delete_key: yes

    - name: Clear the existing (Default) entry at path MyCompany
      win_regedit:
        path: HKCU:\Software\MyCompany
        state: absent
        delete_key: no

    - name: Remove entry 'hello' from registry path MyCompany
      win_regedit:
        path: HKCU:\Software\MyCompany
        name: hello
        state: absent

    - name: Change default mouse trailing settings for new users
      win_regedit:
        path: HKLM:\ANSIBLE\Control Panel\Mouse
        name: MouseTrails
        data: 10
        type: str
        state: present
        hive: C:\Users\Default\NTUSER.dat

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
data_changed boolean | success | Whether this invocation changed the data in the registry value.
data_type_changed boolean | success | Whether this invocation changed the datatype of the registry value. Sample: True

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Core Team. [core]

### Red Hat Support

More information about Red Hat’s support of this module is available from this Red Hat Knowledge Base article.

### Authors

- Adam Keech (@smadam813)

- Josh Ludwig (@joshludwig)

- Jordan Borean (@jborean93)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.