How to Get Windows Features using PowerShell on Server

Prajwal Desai
Posted by Prajwal Desai

In this article, I will demonstrate how to get windows features using PowerShell on servers. The Get-WindowsFeature cmdlet lists all the windows features installed on a server.

If you are asked to find the features installed on a specific server, you can use PowerShell to complete the task. Manually listing down the installed features will take time, and you cannot do this when you have multiple servers in the setup.

There are many ways to locate the installed features on the server, including Configuration Manager and third-party tools. But, PowerShell is the most straightforward and cost-free way to discover what features are 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

How to Get Windows 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 Features on Server

Run the below PowerShell command to list all the features that are available and 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.

Get Windows Features using PowerShell
Get Windows 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 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 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 Features that are not Installed
List all Windows 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.

[X] Active Directory Certificate Services               AD-Certificate                 Installed
    [X] Certification Authority                         ADCS-Cert-Authority            Installed
    [ ] Online Responder                                ADCS-Online-Cert               Available
            [ ] Centralized SSL Certificate Support     Web-CertProvider               Available
            [ ] IIS Client Certificate Mapping Authe... Web-Cert-Auth                  Available
List Installed Windows Features using Name or Wildcard
List Installed Windows Features using Name or Wildcard

Find Installed Features 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 Installed Features on Remote Windows Server
Find Installed Features 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

Share This Article
Prajwal Desai
Posted by Prajwal Desai
Follow:
Prajwal Desai is a Microsoft MVP in Intune and SCCM. He writes articles on SCCM, Intune, Windows 365, Windows Server, Windows 11, WordPress and other topics, with the goal of providing people with useful information.
Leave a comment