# win_feature – Installs and uninstalls Windows Features on Windows Server

- Synopsis

- Parameters

- See Also

- Examples

- Return Values

- Status

## Synopsis

- Installs or uninstalls Windows Roles or Features on Windows Server.

- This module uses the Add/Remove-WindowsFeature Cmdlets on Windows 2008 R2 and Install/Uninstall-WindowsFeature Cmdlets on Windows 2012, which are not available on client os machines.

## Parameters

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

include_management_tools
boolean

Choices:
- no ←
- yes

Adds the corresponding management tools to the specified feature.
Not supported in Windows 2008 R2 and will be ignored.

include_sub_features
boolean

Choices:
- no ←
- yes

Adds all subfeatures of the specified feature.

name list / required |  | Names of roles or features to install as a single feature or a comma-separated list of features. To list all available features use the PowerShell command `Get-WindowsFeature`.
source string |  | Specify a source to install the feature from. Not supported in Windows 2008 R2 and will be ignored. Can either be `{driveletter}:\sources\sxs` or `\\{IP}\share\sources\sxs`.

state
string

Choices:
- absent
- present ←

State of the features or roles on the system.

## See Also

See also

win_chocolatey – Manage packages using chocolatey

  The official documentation on the win_chocolatey module.

win_package – Installs/uninstalls an installable package

  The official documentation on the win_package module.

## Examples

    - name: Install IIS (Web-Server only)
      win_feature:
        name: Web-Server
        state: present

    - name: Install IIS (Web-Server and Web-Common-Http)
      win_feature:
        name:
        - Web-Server
        - Web-Common-Http
        state: present

    - name: Install NET-Framework-Core from file
      win_feature:
        name: NET-Framework-Core
        source: C:\Temp\iso\sources\sxs
        state: present

    - name: Install IIS Web-Server with sub features and management tools
      win_feature:
        name: Web-Server
        state: present
        include_sub_features: yes
        include_management_tools: yes
      register: win_feature

    - name: Reboot if installing Web-Server feature requires it
      win_reboot:
      when: win_feature.reboot_required

## Return Values

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

Key | Returned | Description
--- | --- | ---
exitcode string | always | The stringified exit code from the feature installation/removal command. Sample: Success
feature_result complex | success | List of features that were installed or removed.
| display_name string | always | Feature display name. Sample: Telnet Client
| id integer | always | A list of KB article IDs that apply to the update. Sample: 44
| message list of strings | always | Any messages returned from the feature subsystem that occurred during installation or removal of this feature.
| reboot_required boolean | always | True when the target server requires a reboot as a result of installing or removing this feature. Sample: True
| restart_needed boolean | always | DEPRECATED in Ansible 2.4 (refer to `reboot_required` instead). True when the target server requires a reboot as a result of installing or removing this feature. Sample: True
| skip_reason string | always | The reason a feature installation or removal was skipped. Sample: NotSkipped
| success boolean | always | If the feature installation or removal was successful. Sample: True
reboot_required boolean | success | True when the target server requires a reboot to complete updates (no further updates can be installed until after a reboot). Sample: True

## Status

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

- This module is maintained by the Ansible Community. [community]

### Authors

- Paul Durivage (@angstwad)

- Trond Hindenes (@trondhindenes)

Hint

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