In this post, I will demonstrate how to list installed roles and features using PowerShell. The Get-WindowsFeature cmdlet lists all the roles and Windows features installed on a server.
To identify the features installed on a specific server, PowerShell offers an efficient solution. Manually listing installed features is time-consuming and impractical, especially when managing multiple servers in a setup.
There are various methods to identify the installed features on a server, such as using Configuration Manager or third-party tools. However, PowerShell offers the simplest and most cost-effective solution for determining the features installed on Windows servers.

About Get-WindowsFeature Cmdlet
The Get-WindowsFeature cmdlet gets information about features that are both available for installation and already installed on a computer that is running Windows Server or an offline virtual hard disk (VHD) that is running Windows Server.
Clearly, Windows features and roles are only available on server operating systems and not on client operating systems. Therefore, the Get-WindowsFeature cmdlet can only be executed on Server Operating Systems.
You can specify the following parameters along with the Get-WindowsFeature cmdlet.
- -Name
- -Vhd
- -ComputerName
- -Credential
- -LogPath
List Installed Roles and Features using PowerShell
Let’s go through some examples of using the Get-WindowsFeature cmdlet to get Windows roles and features using PowerShell.
List all the Windows Roles and Features installed on Server
Run the below PowerShell command to list all the roles and features that are installed on the Windows Server.
Get-WindowsFeature
In the command output, a summary of all installed and available features for installation on the server is displayed. The display name column displays the Windows feature’s name, while the “Install State” column indicates whether a feature is installed or available.

Find all Installed Features on Windows Server
If you want to find out the features that are installed on a given Windows Server, run the following command in the PowerShell window.
Get-WindowsFeature | where{$_.InstallState -eq "Installed"}
In the screenshot below, we see the PowerShell command output shows all the Windows features installed on the server.

List all Windows Roles and Features that are not Installed
To list the Windows features that are not installed on a server, you can use the below PowerShell command.
Get-WindowsFeature | where{!($_.InstallState -eq "Installed")}

Get Installed Windows Features using Name or Wildcard
If you need to find a specific feature installed on the server, simply input the Name or Display Name. If you don’t know the whole name of the feature/role, you can use the wildcard character to find the features.
For example, on a Windows Server, if you want to find the installed features that begin with “Cert“, you can use the following command.
Get-WindowsFeature *Cert*
The below command output shows all the Windows Features whose name begins with Cert.

Find Roles and Features installed on Remote Windows Server
If you want to list the Windows features installed on a remote Windows Server, it is possible using the PowerShell. This method is convenient because you don’t have to log in to the remote Windows Server to get the features.
Run the following command in the PowerShell window to get the list of Windows features installed on the remote server. The below command gets all the installed features on a remote server whose name begins with remote.
Get-WindowsFeature -ComputerName "ServerName" -Name *Remote*

You can find the list of installed features on multiple remote Windows servers using the below PowerShell command. Before you run the command, substitute the computer names with the server names.
Invoke-Command -ComputerName computername1,computername2 -ScriptBlock {Get-WindowsFeature *remote*}

Read Next
- How to Uninstall Windows Updates using PowerShell
- How to Change RDP Port using PowerShell
- List all Azure Regions using PowerShell | Azure Cloud Shell
- List of Useful TPM PowerShell CmdLets
- How to Get Public IP Address Using PowerShell
Still Need Help?
If you need further assistance on the above article or want to discuss other technical issues, check out some of these options.