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.

Install and Update Third Party Applications with Patch My PC
Install and Update Third Party Applications with Patch My PC

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.

List Installed Roles and Features using PowerShell
List Installed Roles and Features using PowerShell

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.

Find All Installed Features on Windows Server
Find All Installed Features on Windows 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")}
List all Windows Roles and Features that are not Installed
List all Windows Roles and Features that are not 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.

List Installed Windows Features using Name or Wildcard
List Installed Windows Features using Name or Wildcard

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*
Find Roles and Features installed on Remote Windows Server
Find Roles and Features installed on Remote Windows Server

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*}
Find Installed Features on multiple Remote Windows Servers
Find Installed Features on multiple Remote Windows Servers

Read Next

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Prajwal Desai

Prajwal Desai is a technology expert and 10 time Dual Microsoft MVP (Most Valuable Professional) with a strong focus on Microsoft Intune, SCCM, Windows 365, Enterprise Mobility, and Windows. He is a renowned author, speaker, & community leader, known for sharing his expertise & knowledge through his blog, YouTube, conferences, webinars etc.