PowerShell 是 Windows 系统管理员获取环境快照与生成配置报告最直接、可复用的工具,支持导出硬件信息、系统设置、已安装程序、服务状态、网络配置等关键数据,适用于日常巡检、故障排查及合规审计。
powershell 是 windows 系统管理员获取环境快照与生成配置报告最直接、可复用的工具。无需第三方软件,一条命令或一个脚本即可导出硬件信息、系统设置、已安装程序、服务状态、网络配置等关键数据,适合日常巡检、故障排查或合规审计。
基础系统快照:快速导出核心信息
使用 Get-ComputerInfo 可一次性获取操作系统版本、BIOS/UEFI 信息、处理器、内存、磁盘、时区、域/工作组状态等结构化数据。输出为对象,便于筛选或导出:
- Get-ComputerInfo | Select-Object OsName, OsVersion, OsArchitecture, CsNumberOfProcessors, RsopComputerName, TimeZone —— 提取常用字段
- Get-ComputerInfo | Export-Csv -Path "SystemSnapshot.csv" -NoTypeInformation —— 保存为 CSV,方便 Excel 查看
已安装软件与更新状态
Windows 应用和补丁信息分散在不同位置,需组合查询:
- Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object {$_.DisplayName} | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Sort-Object DisplayName —— 获取 64 位传统软件列表(含部分 MSI 和 EXE 安装项)
- Get-WmiObject -Class Win32_QuickFixEngineering | Select-Object HotFixID, Description, InstalledOn | Where-Object {$_.InstalledOn} —— 列出已安装的 KB 补丁(注意:部分新系统推荐用 Get-HotFix 替代)
- Get-AppxPackage | Select-Object Name, PackageFullName, Version, InstallLocation —— 查看已部署的 Microsoft Store 应用
运行时配置:服务、启动项与网络
反映当前系统实际行为的关键维度:
- Get-Service | Where-Object {$_.Status -eq 'Running'} | Select-Object Name, DisplayName, StartType | Export-Csv "RunningServices.csv" -NoTypeInformation
- Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, User, Location —— 获取开机自启程序(注册表 + WMI 启动项)
- Get-NetIPConfiguration | Select-Object InterfaceAlias, IPv4Address, IPv4DefaultGateway, NetAdapter | ForEach-Object { $_.NetAdapter | Add-Member -NotePropertyName IPAddresses -NotePropertyValue $_.IPv4Address -PassThru } | Select-Object InterfaceDescription, Status, IPAddresses —— 整合网卡与 IP 配置
生成完整配置报告(脚本化建议)
将上述内容整合为一个可重复执行的脚本,按时间戳命名输出目录,提升可追溯性:
- 创建文件夹:$ReportDir = Join-Path $env:USERPROFILE ("ConfigReport_" + (Get-Date -Format "yyyyMMdd_HHmm")) ; New-Item -ItemType Directory -Path $ReportDir -Force
- 分模块导出:Get-ComputerInfo | Export-Csv "$ReportDirSystemInfo.csv" -NoTypeInformation;Get-Service | Export-Csv "$ReportDirServices.csv" -NoTypeInformation;其余同理
- 附加人工备注:"Report generated on $(Get-Date). Purpose: Pre-migration baseline." | Out-File "$ReportDirREADME.txt"
不复杂但容易忽略的是权限与兼容性:部分 WMI 或注册表查询需以管理员身份运行;Windows 10/11 中某些旧 WMI 类(如 Win32_Product)性能开销大,应避免在生产环境频繁调用。优先使用 Get-CimInstance 替代 Get-WmiObject,更稳定且支持异步与会话管理。

















