インストール済みのWindows Severの役割と機能はGet-WindowsFeatureで簡単に一覧できます。いくつかバリエーションを書いてみます。
以下のコマンドではInstalled(インストール済み)の役割と機能を一覧しています。
PS> Get-WindowsFeature | ?{$_.InstallState -eq [Microsoft.Windows.ServerManager.Commands.InstallState]::Installed}Get-WindowsFeatureのデフォルト出力はツリー状になっています。
Display Name Name Install State
------------ ---- -------------
[X] Web サーバー (IIS) Web-Server Installed
[X] Web サーバー Web-WebServer Installed
[X] HTTP 共通機能 Web-Common-Http Installed
[X] HTTP エラー Web-Http-Errors Installed
[X] ディレクトリの参照 Web-Dir-Browsing Installed
[X] 既定のドキュメント Web-Default-Doc Installed
[X] 静的なコンテンツ Web-Static-Content Installed
[X] セキュリティ Web-Security Installed
[X] 要求フィルター Web-Filtering Installed
[X] Windows 認証 Web-Windows-Auth Installed
[X] ダイジェスト認証 Web-Digest-Auth Installed
[X] パフォーマンス Web-Performance Installed
[X] 静的なコンテンツの圧縮 Web-Stat-Compression Installed
[X] 状態と診断 Web-Health Installed
#....省略
ツリー表示でなく名前のリストだけ取りたければ。
PS> Get-WindowsFeature | ?{$_.InstallState -eq [Microsoft.Windows.ServerManager.Commands.InstallState]::Installed} | select DisplayName
DisplayName
-----------
Web サーバー (IIS)
Web サーバー
HTTP 共通機能
HTTP エラー
ディレクトリの参照
既定のドキュメント
静的なコンテンツ
セキュリティ
要求フィルター
Windows 認証
#....省略
更にツリーの最下層だけ取りたければ。SubFeaturesが0のものをリストすればよいので。
PS> Get-WindowsFeature | ?{$_.InstallState -eq [Microsoft.Windows.ServerManager.Commands.InstallState]::Installed -and $_.SubFeatures.Count -eq 0} | select DisplayName
例えばインストール済みの機能と役割を説明付きでCSVに出力したければ。
PS> Get-WindowsFeature | ?{$_.InstallState -eq [Microsoft.Windows.ServerManager.Commands.InstallState]::Installed -and $_.SubFeatures.Count -eq 0} | select DisplayName,Description | Export-Csv -Encoding UTF8 C:\features.csv
自分向けメモ用に。