PowerShell 可快速搭建轻量服务状态看板:用 Get-Service 筛选关键服务,Write-Host 输出带颜色标记的控制台视图,ConvertTo-Html 生成含自动刷新功能的 HTML 页面,并通过任务计划实现定时更新。
用 powershell 快速搭建一个轻量、可刷新的服务状态看板,不需要安装额外工具,直接调用系统 api 获取服务信息,再格式化输出或导出为 html 页面即可。
获取关键服务状态
用 Get-Service 获取服务列表,筛选出你关心的服务(比如 Spooler、W32Time、Dhcp 等),避免拉取全部 200+ 项影响响应速度。
- 指定服务名列表:
Get-Service -Name Spooler, W32Time, Dhcp, BITS, wuauserv - 只查运行状态异常的服务:
Get-Service | Where-Object {$_.Status -ne 'Running' -and $_.StartType -ne 'Disabled'} - 加
-ComputerName参数可远程查询(需启用 WinRM 且有权限)
生成带颜色标记的控制台看板
PowerShell 控制台支持 ANSI 颜色,可用 Write-Host 搭配不同颜色直观呈现状态:
- Running → 绿色
- Stopped → 红色
- StartPending / StopPending → 黄色
- 每行显示服务名、状态、启动类型,用
Format-Table -AutoSize对齐更清晰
导出为简易 HTML 看板页面
生成一个本地 HTML 文件,双击就能在浏览器打开,适合共享或嵌入监控页:
- 用
ConvertTo-Html转换服务对象,加上自定义 CSS 样式(如状态色块、表格边框) - 加入自动刷新 meta 标签:
实现每 30 秒刷新 - 保存路径建议用绝对路径,例如:
$html | Out-File "$env:USERPROFILE\Desktop\ServiceDashboard.html" -Encoding UTF8
做成可定时自动更新的脚本
把查询 + 生成 HTML 封装成脚本,配合任务计划程序实现无人值守看板:
- 脚本开头加
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned -Force避免策略拦截 - 用
Register-ScheduledTask创建每日/每小时触发的任务(推荐“登录时”或“空闲时”触发) - 可选:添加时间戳和上次更新时间到 HTML 页脚,便于追踪时效性
不复杂但容易忽略细节:服务名大小写不敏感,但拼写必须准确;远程查询前确认防火墙放行 WinRM;HTML 导出后建议用 Edge 或 Chrome 打开以获得最佳样式支持。











