PowerShellでWindows Serverの役割と機能を管理する方法(一覧表示・インストール・一括展開・削除)
Windows Server 2012 R2/2016/2019では、グラフィカルな「サーバーマネージャー」コンソールを使ってサーバーの役割や機能をインストール・削除できます。しかし、多くの場合、PowerShellコンソールから操作したほうがはるかに素早く同じ作業を行えます。本記事では、最新のWindows Server環境において、PowerShellで役割と機能を管理する方法を具体的なコマンド例とともに解説します。
- PowerShellでインストール済みの役割と機能を一覧表示する
- PowerShellで役割と機能をインストールする方法
- 複数のリモートWindows Serverへ役割を一括展開する方法
- PowerShellで役割や機能をアンインストールする方法
PowerShellでインストール済みのWindows Serverの役割と機能を一覧表示する
利用可能なすべてのWindows Serverの役割と機能の一覧を表示するには、Get-WindowsFeatureコマンドレットを使用します。パラメーターを指定せずに実行すると、すべてのWindows Serverコンポーネントに関する情報が出力されます。
表示される項目は、コンポーネントの表示名(Display Name)、システム名(Name)、そして状態(Install State:Installed / Available / Removed)です。役割と機能の一覧は、サーバーマネージャーのGUIで役割を追加する際に見られるものと同様に、階層化されたツリー形式で表示されます。PowerShellで役割や機能をインストール・削除するには、Name列に表示されるシステム名を把握しておく必要があります。

ヒント: 役割や機能がRemoved(削除済み)と表示されている場合、WinSxSフォルダーのサイズを抑えるために、そのインストールファイルがコンポーネントストアから取り除かれていることを意味します。この状態では、インターネットへの直接接続またはWindows ServerのインストールISOメディアがないと、その役割をインストールできません(.NET Framework 3.5のインストール時などが典型例です)。
オンラインでイメージから役割やコンポーネントを削除するには、次のように実行します。
Uninstall-WindowsFeature -Name DHCP -Remove
削除済みのDHCP役割を再インストールするには、次のコマンドレットを使用します(インターネットへの直接接続が必要です)。
Install-WindowsFeature DHCP
あるいは、Windows ServerのISOイメージからコンポーネントのバイナリファイルを復元することもできます。
Install-WindowsFeature DHCP -Source E:\sources\sxs
インストール済みの機能だけを抽出する
インストール済みのサーバー機能のみを一覧表示するには、次のコマンドを実行します。
Get-WindowsFeature | Where-Object {$_.installstate -eq "installed"} | ft Name,Installstate
下のスクリーンショットの結果から、このサーバーがファイルサーバーとして運用されていることがわかります(FileAndStorage-Services、Storage-Servicesの各役割がインストール済み)。それ以外のコンポーネントの多くは、サーバーの管理や監視のためのものです。

役割名が正確にわからない場合は、ワイルドカードが活用できます。たとえば、IIS役割のWeb関連コンポーネントのうち何がインストールされているかを確認するには、次のコマンドを実行します(構文は簡略化しています)。
Get-WindowsFeature -Name web-* | Where installed

リモートサーバーの構成を確認する
リモートのWindows Serverにインストールされているコンポーネントの一覧も取得できます。
Get-WindowsFeature -ComputerName ny-spool1 | Where installed | ft Name,Installstate
Print-ServicesおよびPrint-Serverの役割がインストールされていることから、このサーバーがプリントサーバーとして使われていると判断できます。

特定の役割が入っているサーバーをドメイン全体から探す
Get-WindowsFeatureコマンドレットを使えば、特定の役割がインストールされたドメイン内のサーバーを検索することも可能です。PowerShellのActiveDirectoryモジュールに含まれるGet-ADComputerコマンドレットで特定のActive Directory OU配下のサーバーを列挙するか、あらかじめ用意したサーバーリスト($servers = ('server1', 'server2'))を利用します。
たとえば、指定したAD組織単位(OU)の中から、FileAndStorage-Services役割を持つすべてのファイルサーバーを検索したいケースを考えます(PowerShellエディターとしてVisual Studio Codeを使用しています)。次のようなスクリプトを実行します。
import-module activedirectory
$Servers=get-adcomputer -properties * -Filter {Operatingsystem -notlike "*2008 R2*" -and enabled -eq "true" -and Operatingsystem -like "*Windows Server*"} -SearchBase 'OU=Servers,OU=UK,DC=woshub,DC=com' |select name
Foreach ($server in $Servers)
{
Get-WindowsFeature -name FileAndStorage-Services -ComputerName $server.Name | Where installed | ft $server.name, Name, Installstate
}
実行結果として、対象の役割がインストールされているサーバーの一覧が得られます。

PowerShellでWindows Serverの役割と機能をインストールする方法
Windows Serverに役割や機能をインストールするには、Install-WindowsFeatureコマンドレットを使用します。
たとえば、現在のサーバーにDNSサーバーの役割と管理ツール(PowerShellのDNSServerモジュールを含む)をインストールするには、次のコマンドを実行します。
Install-WindowsFeature DNS -IncludeManagementTools
デフォルトでは、このコマンドレットは依存関係にあるすべての役割と機能も併せてインストールします。インストール前に依存関係の一覧を確認したい場合は、-WhatIfオプションを付けます。
Install-WindowsFeature -Name UpdateServices -WhatIf
たとえばWSUS役割の場合、いくつかのIISコンポーネントも同時にインストールされることがわかります。
What if: Continue with installation?
What if: Performing installation for "[Windows Server Update Services] Windows Server Update
What if: Performing installation for "[Windows Server Update Services] WID Database".
What if: Performing installation for "[Windows Server Update Services] WSUS Services".
What if: Performing installation for "[Web Server (IIS)] Windows Authentication".
What if: Performing installation for "[Web Server (IIS)] Dynamic Content Compression".
What if: Performing installation for "[Web Server (IIS)] Performance".
What if: Performing installation for "[Web Server (IIS)] Static Content".
What if: Performing installation for "[Windows Internal Database] Windows Internal Database".
What if: The target server may need to be restarted after the installation completes.
リモートデスクトップセッションホストの役割、RDSライセンスの役割、RDSリモート管理ツールをまとめてインストールするには、次のコマンドを使用します。
Install-WindowsFeature -ComputerName lon-rds3 RDS-RD-Server, RDS-Licensing -IncludeAllSubFeature -IncludeManagementTools -Restart

-Restartパラメーターを付けておけば、必要に応じてサーバーが自動的に再起動されます。
また、パイプラインを利用して次のようにコンポーネントをインストールすることもできます。たとえばSMTPサーバーの役割をインストールする例です。
Get-WindowsFeature -Name SMTP-Server | Install-WindowsFeature
複数のリモートWindows Serverへ役割を一括展開する方法
定型構成のサーバーを展開する際に便利なテクニックがあります。まず、参照用となるWindows Serverに必要な機能をインストールし、そのインストール済み役割の一覧をCSVファイルにエクスポートします。
Get-WindowsFeature | where{$_.Installed -eq $True} | select name | Export-Csv C:\PS\InstalledRoles.csv -NoTypeInformation -Verbose

このCSVファイルを使えば、他の定型サーバーにもまったく同じ役割セットをインストールできます。
Import-Csv C:\PS\Roles.csv | foreach{ Install-WindowsFeature $_.name }

すでにインストール済みの役割や機能が含まれていても、コマンドはNoChangeNeededを返してスキップし、次の役割のインストールへ自動的に進みます。
また、複数のリモートサーバーに同一の役割セットをインストールする場合は、次のようなコマンドも使えます。
$servers = ('ny-rds1', 'ny-rds2','ny-rds3','ny-rds4')
foreach ($server in $servers) {Install-WindowsFeature RDS-RD-Server -ComputerName $server}
PowerShellでWindows Serverの役割や機能をアンインストールする方法
Windows Serverから役割や機能を削除するには、Remove-WindowsFeatureコマンドレットを使用します。
たとえば、プリントサーバーの役割を削除するには、次のコマンドを実行します。
Remove-WindowsFeature Print-Server -Restart
まとめ
PowerShellを活用すれば、サーバーマネージャーのGUI操作よりも迅速かつ柔軟にWindows Serverの役割と機能を管理できます。Get-WindowsFeatureによる構成確認、Install-WindowsFeatureによるインストール、CSVファイルを組み合わせた複数サーバーへの一括展開、Remove-WindowsFeatureによる削除——これらのコマンドレットを使いこなすことで、サーバー構築・運用作業を大幅に効率化できます。ぜひ日々の管理業務に取り入れてみてください。
-
Windows Serverで役割と機能を削除する方法|サーバー マネージャーを使った手順を解説
GUIベースのWindows Serverでは、標準搭載されている「サーバー マネージャー」を利用することで、IT管理者は役割や機能を簡単に削除できます。この記事では、Windows Serverで役割と機能を削除する方法を、実際の画面操作に沿ってわかりやすく解説します。 削除作業前に確認すべきポイント 本題に入る前に、以下の事前準備が完了しているかを必ずチェックしておきましょう。 役割データの扱いを決めておく:削除する役割に関連するデータを保存するのか、完全に削除するのかを事前に計画します。 データ移行の検討:必要に応じて、役割データを別のサーバーへ移行する計画を立てておきましょう。 ユ
-
Windows Server 2019で削除・非推奨となった機能まとめ
一般向けのWindows 10と同様に、Microsoftはサーバー向けエディションにも継続的に新機能を追加しています。しかし、機能の追加だけではなく、既存機能の削除や非推奨化も行われている点に注意が必要です。本記事では、Windows Server 2019において削除または非推奨となった機能を一覧形式で詳しく解説します。 Windows Server 2019で削除・非推奨となった機能 「削除」と「非推奨」は意味が異なります。削除された機能はOSから完全になくなっており使用できませんが、非推奨の機能は当面利用できるものの、将来のバージョンで削除される可能性があるため、早めの移行計画が推奨