salt.modules.win_servermanager

Manage Windows features via the ServerManager powershell module. Can list available and installed roles/features. Can install and remove roles/features.

maintainer:Shane Lee <slee@saltstack.com>
platform:Windows Server 2008R2 or greater
depends:PowerShell module ServerManager
salt.modules.win_servermanager.install(feature, recurse=False, restart=False, source=None, exclude=None)

Install a feature

Note

Some features require reboot after un/installation, if so until the server is restarted other features can not be installed!

Note

Some features take a long time to complete un/installation, set -t with a long timeout

Parameters:
  • feature (str, list) --

    The name of the feature(s) to install. This can be a single feature, a string of features in a comma delimited list (no spaces), or a list of features.

    New in version Oxygen: Added the ability to pass a list of features to be installed.

  • recurse (Options[bool]) -- Install all sub-features. Default is False
  • restart (Optional[bool]) -- Restarts the computer when installation is complete, if required by the role/feature installed. Will also trigger a reboot if an item in exclude requires a reboot to be properly removed. Default is False
  • source (Optional[str]) -- Path to the source files if missing from the target system. None means that the system will use windows update services to find the required files. Default is None
  • exclude (Optional[str]) --

    The name of the feature to exclude when installing the named feature. This can be a single feature, a string of features in a comma-delimited list (no spaces), or a list of features.

    Warning

    As there is no exclude option for the Add-WindowsFeature or Install-WindowsFeature PowerShell commands the features named in exclude will be installed with other sub-features and will then be removed. If the feature named in ``exclude`` is not a sub-feature of one of the installed items it will still be removed.

Returns:

A dictionary containing the results of the install

Return type:

dict

CLI Example:

# Install the Telnet Client passing a single string
salt '*' win_servermanager.install Telnet-Client

# Install the TFTP Client and the SNMP Service passing a comma-delimited
# string. Install all sub-features
salt '*' win_servermanager.install TFTP-Client,SNMP-Service recurse=True

# Install the TFTP Client from d:\side-by-side
salt '*' win_servermanager.install TFTP-Client source=d:\\side-by-side

# Install the XPS Viewer, SNMP Service, and Remote Access passing a
# list. Install all sub-features, but exclude the Web Server
salt '*' win_servermanager.install "['XPS-Viewer', 'SNMP-Service', 'RemoteAccess']" True recurse=True exclude="Web-Server"
salt.modules.win_servermanager.list_available()

List available features to install

Returns:A list of available features as returned by the Get-WindowsFeature PowerShell command
Return type:str

CLI Example:

salt '*' win_servermanager.list_available
salt.modules.win_servermanager.list_installed()

List installed features. Supported on Windows Server 2008 and Windows 8 and newer.

Returns:A dictionary of installed features
Return type:dict

CLI Example:

salt '*' win_servermanager.list_installed
salt.modules.win_servermanager.remove(feature, remove_payload=False, restart=False)

Remove an installed feature

Note

Some features require a reboot after installation/uninstallation. If one of these features are modified, then other features cannot be installed until the server is restarted. Additionally, some features take a while to complete installation/uninstallation, so it is a good idea to use the -t option to set a longer timeout.

Parameters:
  • feature (str, list) --

    The name of the feature(s) to remove. This can be a single feature, a string of features in a comma delimited list (no spaces), or a list of features.

    New in version Oxygen: Added the ability to pass a list of features to be removed.

  • remove_payload (Optional[bool]) -- True will cause the feature to be removed from the side-by-side store (%SystemDrive%:\Windows\WinSxS). Default is False
  • restart (Optional[bool]) -- Restarts the computer when uninstall is complete, if required by the role/feature removed. Default is False
Returns:

A dictionary containing the results of the uninstall

Return type:

dict

CLI Example:

salt -t 600 '*' win_servermanager.remove Telnet-Client