community.windows.win_hotfix – Install and uninstalls Windows hotfixes

Note

This plugin is part of the community.windows collection (version 1.8.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.windows.

To use it in a playbook, specify: community.windows.win_hotfix.

Synopsis

  • Install, uninstall a Windows hotfix.

Parameters

Parameter

Comments

hotfix_identifier

string

The name of the hotfix as shown in DISM, see examples for details.

This or hotfix_kb MUST be set when state=absent.

If state=present then the hotfix at source will be validated against this value, if it does not match an error will occur.

You can get the identifier by running ‘Get-WindowsPackage -Online -PackagePath path-to-cab-in-msu’ after expanding the msu file.

hotfix_kb

string

The name of the KB the hotfix relates to, see examples for details.

This or hotfix_identifier MUST be set when state=absent.

If state=present then the hotfix at source will be validated against this value, if it does not match an error will occur.

Because DISM uses the identifier as a key and doesn’t refer to a KB in all cases it is recommended to use hotfix_identifier instead.

source

path

The path to the downloaded hotfix .msu file.

This MUST be set if state=present and MUST be a .msu hotfix file.

state

string

Whether to install or uninstall the hotfix.

When present, source MUST be set.

When absent, hotfix_identifier or hotfix_kb MUST be set.

Choices:

  • absent

  • present ← (default)

Notes

Note

See Also

See also

ansible.windows.win_package

The official documentation on the ansible.windows.win_package module.

ansible.windows.win_updates

The official documentation on the ansible.windows.win_updates module.

Examples

- name: Install Windows ADK with DISM for Server 2008 R2
  chocolatey.chocolatey.win_chocolatey:
    name: windows-adk
    version: 8.100.26866.0
    state: present
    install_args: /features OptionId.DeploymentTools

- name: Install hotfix without validating the KB and Identifier
  community.windows.win_hotfix:
    source: C:\temp\windows8.1-kb3172729-x64_e8003822a7ef4705cbb65623b72fd3cec73fe222.msu
    state: present
  register: hotfix_install

- ansible.windows.win_reboot:
  when: hotfix_install.reboot_required

- name: Install hotfix validating KB
  community.windows.win_hotfix:
    hotfix_kb: KB3172729
    source: C:\temp\windows8.1-kb3172729-x64_e8003822a7ef4705cbb65623b72fd3cec73fe222.msu
    state: present
  register: hotfix_install

- ansible.windows.win_reboot:
  when: hotfix_install.reboot_required

- name: Install hotfix validating Identifier
  community.windows.win_hotfix:
    hotfix_identifier: Package_for_KB3172729~31bf3856ad364e35~amd64~~6.3.1.0
    source: C:\temp\windows8.1-kb3172729-x64_e8003822a7ef4705cbb65623b72fd3cec73fe222.msu
    state: present
  register: hotfix_install

- ansible.windows.win_reboot:
  when: hotfix_install.reboot_required

- name: Uninstall hotfix with Identifier
  community.windows.win_hotfix:
    hotfix_identifier: Package_for_KB3172729~31bf3856ad364e35~amd64~~6.3.1.0
    state: absent
  register: hotfix_uninstall

- ansible.windows.win_reboot:
  when: hotfix_uninstall.reboot_required

- name: Uninstall hotfix with KB (not recommended)
  community.windows.win_hotfix:
    hotfix_kb: KB3172729
    state: absent
  register: hotfix_uninstall

- ansible.windows.win_reboot:
  when: hotfix_uninstall.reboot_required

Return Values

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

Key

Description

identifier

string

The DISM identifier for the hotfix.

Returned: success

Sample: “Package_for_KB3172729~31bf3856ad364e35~amd64~~6.3.1.0”

kb

string

The KB the hotfix relates to.

Returned: success

Sample: “KB3172729”

reboot_required

string

Whether a reboot is required for the install or uninstall to finalise.

Returned: success

Sample: true

Authors

  • Jordan Borean (@jborean93)