powershell 是导出 windows server 角色报表最直接方式,支持本地/远程导出 csv 或生成文本摘要,需在 server 2012+ 系统运行,不适用于 win10/11 桌面版。
powershell 是导出 windows 系统角色报表最直接、无需安装第三方工具的方式。系统角色(如 web 服务器、dhcp 服务器、域控制器、文件服务等)主要由 windows server 的“服务器角色和功能”(server manager)管理,其状态可通过 get-windowsfeature 命令完整获取。
导出本地服务器角色状态为 CSV 报表
该命令适用于 Windows Server 2012 及以上版本(包括 Server 2022),能清晰区分已安装(Installed)、可用(Available)、已移除(Removed)状态:
- 以管理员身份打开 PowerShell
- 运行以下命令导出结构化 CSV 文件:
Get-WindowsFeature | Select-Object DisplayName, Name, Installed, InstallState, FeatureType | Export-Csv -Path "$env:USERPROFILE\Desktop\ServerRoles.csv" -NoTypeInformation -Encoding UTF8 - 生成的 CSV 文件可在 Excel 中直接打开,支持按
Installed列筛选已启用角色,或按InstallState查看待安装/已卸载项
导出远程服务器角色并合并多台报表
若需批量检查域内多台服务器,可配合 -ComputerName 参数远程获取(需目标服务器启用 WinRM 且当前用户有权限):
- 例如导出三台服务器的角色信息到单个汇总 CSV:
$servers = "SRV-DC01", "SRV-WEB02", "SRV-FS03"
$allRoles = foreach ($s in $servers) { Get-WindowsFeature -ComputerName $s | Select-Object @{Name="Server";Expression={$s}}, DisplayName, Name, Installed }
$allRoles | Export-Csv "$env:USERPROFILE\Desktop\AllServers_Roles.csv" -NoTypeInformation -Encoding UTF8 - 注意:若某服务器不可达,命令会报错;建议添加
try/catch或使用Test-Connection -Quiet预检
生成简洁可读的文本摘要报表
面向快速人工核查时,可输出带标题分组的纯文本报告,突出已安装角色:
- 执行:
$f = Get-WindowsFeature
$report = @("=== Windows Server 角色与功能摘要 ===", "", "✅ 已安装角色:") + ($f | Where-Object {$_.Installed -and $_.FeatureType -eq "Role"} | ForEach-Object {$_.DisplayName})
$report += "", "? 已安装功能:" + ($f | Where-Object {$_.Installed -and $_.FeatureType -eq "Feature"} | ForEach-Object {$_.DisplayName})
$report | Out-File "$env:USERPROFILE\Desktop\ServerRoles_Summary.txt" -Encoding UTF8 - 生成的 .txt 文件桌面即见,内容层级清晰,适合发给非技术人员确认
不复杂但容易忽略:确保在 Windows Server 上运行,该命令在 Windows 10/11 桌面版中不可用(无服务器角色组件)。











