IT天空

 找回密码
 加入我们

手机号码,快捷登录

搜索

[原创] 电脑硬件信息采集系统 编写过程(未完成)

[复制链接]
dncsk 发表于 2021-4-16 15:48:46 | 显示全部楼层 |阅读模式

本帖最后由 dncsk 于 2021-4-16 15:54 编辑

因工作需要 准备写一个硬件配置信息的收集工具 用来收集客户的电脑配置信息 方便维护管理
目前写了一部分 后面会慢慢整理脱敏后发布

b/s 只有客户端没有服务器端 使用mysql数据库
最近访问 头像模式 列表模式
 楼主| dncsk 发表于 2021-4-16 15:49:58 | 显示全部楼层

活跃 2634| 技术 0| 互助 0| 钻石 30

本帖最后由 dncsk 于 2021-4-17 15:16 编辑

目前运行wmi时部分机型会报错 : Line 12723  (File "D:\234data\pro\公共\专题\AU3\202003 整理\直接案例\mac 硬件信息采集20210411\test2021.exe"):   Error: The requested action with this object has failed.后续找到问题后同步更新
代码如下:
  1. WMI()
  2. Func WMI();wmi获取网卡信息
  3.                 $w0 = "”" & @CRLF
  4.                 $w1 = "ip地址: “:"
  5.                 $w2 = "子网掩码: “:"
  6.                 $w3 = "默认网关: “:"
  7.                 $w4 = "首选dns: “:"
  8.                 $w5 = "备用dns: “:"
  9.                 $w6 = "mac地址: “"
  10.                 $w7 = "网卡ID: “"
  11.                 $w8 = "计算机名: “"
  12.                 $w9 = "DHCP状态: “1"
  13.                
  14.                 $w2 = $w0 & "子网掩码: “:"
  15.                 $w3 = $w0 & "默认网关: “:"
  16.                 $w4 = $w0 & "首选dns: “:"
  17.                 $w5 = $w0 & "备用dns: “:"
  18.                 $w6 = $w0 & "mac地址: “"
  19.                 $w7 = $w0 & "网卡ID: “"
  20.                 $w8 = $w0 & "计算机名: “"
  21.                 $w9 = $w0 & "DHCP状态: “1"
  22.                
  23.         $sMesStr = ""
  24.         $net = ""
  25.         $oLocator = ObjCreate("WbemScripting.SWbemLocator")
  26.         $oService = $oLocator.ConnectServer

  27.         $oClassSet = $oService.ExecQuery("Select * From Win32_NetworkAdapter Where NetConnectionID IS NOT NULL")

  28.         For $oClass In $oClassSet
  29.                 If @error Then ExitLoop
  30.                 $sMesStr = $sMesStr & "连接名:“" & $oClass.NetConnectionID() & $w0 & _
  31.                                 "网卡名: “" & $oClass.Name & $w0 & _
  32.                                 "Mac地址: “:" & $oClass.MACAddress & $w0 & _
  33.                                 "连接状态:“" & $oClass.NetConnectionStatus & $w0 & @CRLF
  34. ;~                                                                 MsgBox(0,"",$sMesStr)
  35.         Next
  36.         $oClassSet = ""
  37.         $oClass = ""
  38.         $oService = ""
  39.         $oLocator = ""

  40.         $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
  41.         $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled != 0", "WQL", 0x10 + 0x20)
  42.         For $objItem In $colItems
  43.                 ;"网卡名:" & $objItem.Description & "”" & @CRLF & _
  44.                 If @error Then ExitLoop
  45.                 If $ms1 Then $objItem.DNSServerSearchOrder(1)=""
  46.                 $net = $net & $w1 & $objItem.IPAddress(0) & $w2 & $objItem.IPSubnet(0) & $w3 & $objItem.DefaultIPGateway(0) & $w4 & $objItem.DNSServerSearchOrder(0) & $w5 & _
  47.                                 $objItem.DNSServerSearchOrder(1) & $w6 & $objItem.MACAddress & $w7 & $objItem.SettingID & $w8 & $objItem.DNSHostName & $w9 & $objItem.DHCPServer(0) & $w0 & @CRLF
  48.         Next
  49.         $objWMIService = ""
  50.         $colItems = ""
  51.         $objItem = ""
  52.         $colItems = ""
  53.         $wangka1 = 0
  54.         $lianjie1 = 0
  55.         $mac1 = 0
  56.         $zhuangtai = 0
  57.         $IP = 0
  58.         $MAST = 0
  59.         $GATEWAY = 0
  60.         $DNS1 = 0
  61.         $DNS2 = 0
  62.         $mac = 0
  63.         $id = 0
  64.         $computer = 0
  65.         $wangka1 = StringRegExp($sMesStr, "(?<=网卡名: “)[^”]+", 3)
  66.         $lianjie1 = StringRegExp($sMesStr, "(?<=连接名:“)[^”]+", 3)
  67.         $mac1 = StringRegExp($sMesStr, "(?<=Mac地址: “)[^”]+", 3)
  68.         $zhuangtai = StringRegExp($sMesStr, "(?<=连接状态:“)[^”]+", 3) ;0 为禁用   2为连接    7为未连接

  69.         $IP = StringRegExp($net, "(?<=ip地址: “)[^”]+", 3)
  70.         $MAST = StringRegExp($net, "(?<=子网掩码: “)[^”]+", 3)
  71.         $GATEWAY = StringRegExp($net, "(?<=默认网关: “)[^”]+", 3)
  72.         $DNS1 = StringRegExp($net, "(?<=首选dns: “)[^”]+", 3)
  73.         $DNS2 = StringRegExp($net, "(?<=备用dns: “)[^”]+", 3)
  74.         $mac = StringRegExp($net, "(?<=mac地址: “)[^”]+", 3)
  75.         $id = StringRegExp($net, "(?<=网卡ID: “)[^”]+", 3)
  76.         $computer = StringRegExp($net, "(?<=计算机名: “)[^”]+", 3)
  77.         $dhcpserver = StringRegExp($net, "(?<=DHCP状态: “)[^”]+", 3)
  78. EndFunc   ;==>WMI
复制代码
找到问题了 是因为dns2无法获取而报错 改成这样就可以了

  1. WMI()
  2. Func WMI();wmi获取网卡信息
  3.                 $w0 = "”" & @CRLF
  4.                 $w1 = "ip地址: “:"
  5.                 $w2 = "子网掩码: “:"
  6.                 $w3 = "默认网关: “:"
  7.                 $w4 = "首选dns: “:"
  8.                 $w5 = "备用dns: “:"
  9.                 $w6 = "mac地址: “"
  10.                 $w7 = "网卡ID: “"
  11.                 $w8 = "计算机名: “"
  12.                 $w9 = "DHCP状态: “1"
  13.                
  14.                 $w2 = $w0 & "子网掩码: “:"
  15.                 $w3 = $w0 & "默认网关: “:"
  16.                 $w4 = $w0 & "首选dns: “:"
  17.                 $w5 = $w0 & "备用dns: “:"
  18.                 $w6 = $w0 & "mac地址: “"
  19.                 $w7 = $w0 & "网卡ID: “"
  20.                 $w8 = $w0 & "计算机名: “"
  21.                 $w9 = $w0 & "DHCP状态: “1"
  22.                
  23.         $sMesStr = ""
  24.         $net = ""
  25.         $oLocator = ObjCreate("WbemScripting.SWbemLocator")
  26.         $oService = $oLocator.ConnectServer

  27.         $oClassSet = $oService.ExecQuery("Select * From Win32_NetworkAdapter Where NetConnectionID IS NOT NULL")

  28.         For $oClass In $oClassSet
  29.                 If @error Then ExitLoop
  30.                 $sMesStr = $sMesStr & "连接名:“" & $oClass.NetConnectionID() & $w0 & _
  31.                                 "网卡名: “" & $oClass.Name & $w0 & _
  32.                                 "Mac地址: “:" & $oClass.MACAddress & $w0 & _
  33.                                 "连接状态:“" & $oClass.NetConnectionStatus & $w0 & @CRLF
  34. ;~                                                                 MsgBox(0,"",$sMesStr)
  35.         Next
  36.         $oClassSet = ""
  37.         $oClass = ""
  38.         $oService = ""
  39.         $oLocator = ""

  40.         $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
  41.         $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled != 0", "WQL", 0x10 + 0x20)
  42.         For $objItem In $colItems
  43.                 ;"网卡名:" & $objItem.Description & "”" & @CRLF & _
  44.                 If @error Then ExitLoop
  45.                 If $ms1 Then $objItem.DNSServerSearchOrder(1)=""
  46.                 $net = $net & $w1 & $objItem.IPAddress(0) & $w2 & $objItem.IPSubnet(0) & $w3 & $objItem.DefaultIPGateway(0) & $w4 & $objItem.DNSServerSearchOrder(0) & $w5 & _
  47.                                 <b><u>$objItem.DNSServerSearchOrder(0) </u></b>& $w6 & $objItem.MACAddress & $w7 & $objItem.SettingID & $w8 & $objItem.DNSHostName & $w9 & $objItem.DHCPServer(0) & $w0 & @CRLF
  48.         Next
  49.         $objWMIService = ""
  50.         $colItems = ""
  51.         $objItem = ""
  52.         $colItems = ""
  53.         $wangka1 = 0
  54.         $lianjie1 = 0
  55.         $mac1 = 0
  56.         $zhuangtai = 0
  57.         $IP = 0
  58.         $MAST = 0
  59.         $GATEWAY = 0
  60.         $DNS1 = 0
  61.         $DNS2 = 0
  62.         $mac = 0
  63.         $id = 0
  64.         $computer = 0
  65.         $wangka1 = StringRegExp($sMesStr, "(?<=网卡名: “)[^”]+", 3)
  66.         $lianjie1 = StringRegExp($sMesStr, "(?<=连接名:“)[^”]+", 3)
  67.         $mac1 = StringRegExp($sMesStr, "(?<=Mac地址: “)[^”]+", 3)
  68.         $zhuangtai = StringRegExp($sMesStr, "(?<=连接状态:“)[^”]+", 3) ;0 为禁用   2为连接    7为未连接

  69.         $IP = StringRegExp($net, "(?<=ip地址: “)[^”]+", 3)
  70.         $MAST = StringRegExp($net, "(?<=子网掩码: “)[^”]+", 3)
  71.         $GATEWAY = StringRegExp($net, "(?<=默认网关: “)[^”]+", 3)
  72.         $DNS1 = StringRegExp($net, "(?<=首选dns: “)[^”]+", 3)
  73.         $DNS2 = StringRegExp($net, "(?<=备用dns: “)[^”]+", 3)
  74.         $mac = StringRegExp($net, "(?<=mac地址: “)[^”]+", 3)
  75.         $id = StringRegExp($net, "(?<=网卡ID: “)[^”]+", 3)
  76.         $computer = StringRegExp($net, "(?<=计算机名: “)[^”]+", 3)
  77.         $dhcpserver = StringRegExp($net, "(?<=DHCP状态: “)[^”]+", 3)
  78. EndFunc   ;==>WMI
复制代码
jpz1230 发表于 2021-4-16 16:51:08 | 显示全部楼层

活跃 18636| 技术 8| 互助 13| 钻石 370

牛逼~~~~~!~~
别让现实挡住了通往梦想的路
lr2000 发表于 2021-4-25 23:02:16 | 显示全部楼层

活跃 4899| 技术 0| 互助 0| 钻石 0

期待分享
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

dncsk

2634

活跃

0

技术

0

互助
签到任务
最火的业界新闻
  • 返修显卡被曝不翼而飞 京东售后的危机来临
  • 硬盘挖矿爆火的背后:真有价值 还是浪费资
  • 金士顿向主板厂商出样DDR5可超频模块 新品
  • 罗技Rugged Combo 3 Touch发布:一款适用于
  • [多图]IBM宣布已经制造出全球首颗2nm EUV芯
  • Ryzen 7 5700G和Ryzen 5 5600G "Zen 3"
  • IBASE推出3.5英寸IB953单板机 采用英特尔11
  • HighPoint展示PCIe 4.0 NVMe SSD RAID转接
  • 京东被曝显卡售后不肯维修要原价退款 网友
  • 技嘉发布M30系列PCIe 3.0 M.2 NVMe SSD
炫酷的硬件Show
  • 振华SUPER FLOWER 铜皇450W 铜牌电源
  • 比小更小,Mini-STX装机
  • 华擎X99E-ITX + 银欣ML06 装机记
  • 最强双路泰坦硬管水冷 制作流程
  • 银欣FT02,双路E5工作站
  • 迟到的定制机箱小钢炮清理灰尘
  • 乔思伯UMX1 Plus,小巧的家用综合主机
  • 分体水冷第二弹-Inwin 805 infinity
  • 第一次DIY硬管水冷~~
  • 樱桃MX6.0 青轴 机械键盘 开箱
有趣的美图分享
  • 舒服
  • 后面,黑袍纠察队
  • 时代的眼泪
  • 从视角看,他扮演的女精灵
  • 我竟然是80后
  • 猎杀时刻
  • 果然是童子功
  • 化妆后千万别趴着睡
  • 刚倾家荡产
  • 准备换手机,曲面屏再好也不考虑
关注官方微信
快速回复 返回顶部 返回列表