Uninstalls specified Windows Server roles, role services, and features from a computer that is running Windows Server 2012 R2.
Windows Server · Risk: Critical · Documentation Verified
Last verified: 2026-10-26
Microsoft Microsoft.Windows.ServerManager.Migration reference: Uninstalls specified Windows Server roles, role services, and features from a computer that is running Windows Server 2012 R2. The syntax and selected example below are adapted from the pinned Windows Server 2025 reference. Module availability, target configuration and delegated permissions determine whether it can run in your environment. Documentation and parameter text: Microsoft, CC BY 4.0; formatting adapted by Cmdlet World. No execution testing is claimed.
Use an account with the target resource permissions documented for Uninstall-WindowsFeature. Modifying administrative cmdlets may require elevation or delegated administration. This catalog does not assert that ordinary users can execute the command.
Supported environments
Windows / Microsoft.Windows.ServerManager.Migration · Windows Server 2025 documentation; feature/module prerequisites apply
Parameters
-ComputerName
Specifies the remote computer for which this cmdlet uninstalls and optionally removes one or more rrsandf_plural. This parameter accepts only one computer name. If this parameter is not added, or no computer name is specified, the default target is the local computer. Valid values for the parameter include a NetBIOS name, an IP address, or a fully qualified domain name of a remote computer that is running Windows Server. To use an IP address of a remote computer as the value of this parameter, your command must include the *Credential* parameter. The computer must either be configured for HTTPS transport, or the IP address of the remote computer must be included in the WinRM TrustedHosts list on the local computer. For information about adding a computer name to the WinRM TrustedHosts list, see How to Add a Computer to the Trusted Host List in about_Remote_Troubleshooting.
-Confirm
Prompts you for confirmation before running the cmdlet.
-Credential
Specifies a user account that has access rights to perform this action. If the parameter is not added, or no value is specified, the default value of this parameter is the current user. Enter a user name in one of the following formats: -- UserName -- Domain\User -- User@Domain.com -- A Credential object returned by the Get-Credential cmdlet. If a user name is entered, then a prompt for a password is displayed.
-IncludeManagementTools
Indicates that the cmdlet uninstalls all applicable management tools along with the roles, role services, or features that are specified in the *Name* parameter. By default, management tools are not uninstalled when you run the Uninstall-WindowsFeature cmdlet; you must add this parameter to uninstall associated management tools.
-LogPath
Specifies a name and path to a log file. Add this parameter if the results of this cmdlet must be stored in a log.
-Name (required)
Specifies a list of features that this cmdlet uninstalls. This parameter does not support wildcard characters.
-Remove
Indicates that the cmdlet deletes feature files for the specified rrsandf_plural from the side-by-side store, located at %SystemDrive%:\Windows\WinSxS. If the feature is not yet uninstalled, the command uninstalls the feature. When you delete feature files, features that depend upon the files you remove are also deleted. When you delete feature files for a subfeature, and no other subfeatures for the parent feature are installed, then files for the entire parent role or feature are deleted.
-Restart
Indicates that this cmdlet automatically restarts the target computer, if a restart is required by the uninstallation process for the specified roles or features. This parameter cannot be used with the *Vhd* parameter.
-Vhd
Specifies the path to an offline VHD. The path can either point to a VHD file, or to a location on which the VHD is already mounted by using Deployment Image Servicing and Management (DISM) tools. The VHD can be on a local disk on the target computer, or on a network shared folder. If the VHD is in a network shared folder, then the value of this parameter is a UNC path to the VHD. In this case, the computer account of the computer that you are using to mount the VHD must have read and write permissions (Read/Write permissions in the File Sharing dialog box, or Full Control on the Security tab of the folder Properties dialog box) on the shared folder, or the VHD will not be accessible. Local loopback Universal Naming Convention (UNC) paths are not supported. Use either of the following formats for the computer account: DOMAIN\SERVERNAME$ or SERVERNAME$. Use the *ComputerName* parameter to specify the target computer you want to use to mount the VHD. If the *ComputerName* parameter is not specified, then the local computer is used. The computer that you are using to mount the VHD must be running Windows Server 2012 R2. Any local path, such as D:\myFolder, that is specified by using this parameter is always relative to the target computer.
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Prerequisites
Windows with the Microsoft.Windows.ServerManager.Migration module and the Windows feature or management tools that provide it. Confirm target connectivity and version compatibility using the linked Microsoft reference.
Security considerations
This cmdlet changes system state. Review every target and parameter in the official reference, test outside production, and prepare an appropriate backup or rollback. Do not execute the example automatically.
Examples
Example 2: Remove all role services from the specified server
This command removes Web Server (IIS) from Server1, including all role services. The user account specified to perform the operation is contoso\user1. Source: Microsoft, CC BY 4.0; transcript prompt/output removed. This example was not executed.