公司最近在用qwenpaw学习和skill,领导让在项目中使用提高效率,我也有此想法故开始了实践。目前实现了我项目中用到的测试主机的C盘容量监控总共21台以下是效果图:

后续还想增加空闲占比太低则弹出提示。以下是Ai总结:

磁盘监控系统 — 实现总结

一、目标

批量查询多台 机器的 C 盘空闲/总容量,生成可视化前端页面,并定时自动刷新。


二、核心文件

文件 路径 说明
check_all_disks.ps1 C:\Users\xli23\Desktop\workStation\ 查询所有机器磁盘,输出 JSON
disk_status.json 同上 查询结果数据文件,供前端读取
disk_dashboard.html 同上 前端可视化页面
server.py 同上 Python HTTP 服务,端口 8080

三、实现方法

1. 磁盘查询()
  • dir \\主机\共享名获取空闲字节数
  • Scripting.FileSystemObject.GetDrive()获取总容量
  • 计算空闲占比,按阈值打状态标签:
    • < 5%critical(红)
    • < 15%warning(黄)
    • ≥ 15%ok(绿)
    • 访问失败 →offline(灰)
  • 结果输出为disk_status.json
2. 前端页面( + JS)
  • 读取disk_status.json渲染表格
  • 顶部汇总卡片(总数/正常/警告/严重/离线)
  • 进度条直观显示空闲占比
  • 支持按状态筛选、主机名搜索、列排序
  • 点击刷新按钮重新读取 JSON
3. 服务(Python)
  • server.pyhttp.server在端口 8080 提供静态文件服务
  • 访问地址:http://localhost:8080/disk_dashboard.html
4. (QwenPaw Cron)
  • 每小时整点自动执行 PS 脚本刷新数据
  • Cron 表达式:0 * * * *
  • Job ID:c04dc361-a7f4-4b4a-be1d-d13cba681e61

四、机器共享名规律

共享名 机器类型 代表机器
C HP Z2 系列 lunzhou66/67/68/71/74/98 等
c_drive HP Mini 800(STARLAB) lunzhou85-93/96/112/118/119 等
C 其他 lunzhou41/lunzhou-cwf19

五、遇到的问题及

问题 原因 解决方法
ping 判断离线但实际在线 短主机名无法解析,需加 .ap.qualcomm.com 改用 net view 或直接访问共享路径验证
\lunzhou37\C 超时 DNS 解析失败,主机名不通 改用 IP \10.64.29.14\C 访问
共享名不统一 不同机型共享名不同(C vs c_drive) 先用 net view \主机 查共享名再访问
PowerShell 多行命令在 cmd 中报错 cmd 不支持换行脚本 改写为 .ps1 文件再用 -File 执行
Get-PSDrive 无法查远程共享总容量 只支持本地驱动器 改用 Scripting.FileSystemObject.GetDrive()
System.IO.DriveInfo 不支持 UNC 路径 .NET 限制 改用 COM 对象 Scripting.FileSystemObject
前端 fetch 本地 JSON 被 CORS 拦截 浏览器安全限制 用 server.py 起 HTTP 服务解决
PowerShell 中文输出乱码 cmd 编码问题 改用英文输出
lunzhou41 无 C 盘共享 该机器只共享了 IoTAutomationLog 和 Sahara 经测试 \lunzhou41\C 实际可访问,直接用

原文链接: agent企业项目实战(1) 作者: lixusocool