首页 > 系统相关 >基于WMI更新Windows系统信息采集程序sysInfo的一些收获

基于WMI更新Windows系统信息采集程序sysInfo的一些收获

时间:2023-09-26 14:01:11浏览次数:30  
标签:Product string Windows 信息 WMI sysInfo


一、网络安全至关重要

没有网络安全就没有国家安全。

当下正值2023年国家网络安全宣传周(9月11日至17日)在全国范围举行,而第20届中国—东盟博览会也在9月16日至19日在广西南宁举行,网络安全检测和保障至关重要。

二、编写sysInfo的目的

单位电脑比较多,电脑专业技术人员少,逐台上机检测花费时间多,效率又低,比较理想的方法 是编写一个系统信息采集程序,发给单位员工在自己的电脑上运行,并把采集的信息文件发回来。所以,不管是以前写的pe_xscan,还是如今写的sysInfo,都是为了收集使用Windows系统的电脑信息,进而分析电脑系统是否安全。

三、WMI简介

最近断断续续在更新sysInfo,主要是通过wmi来进行。

Windows Management Instrumentation (WMI) 是 Microsoft 对基于 Web 的企业管理 (WBEM) 的实现,WBEM 是一项业界倡议,用于为访问企业环境中的管理信息开发一项标准技术。 WMI 使用通用信息模型 (CIM) 行业标准来表示系统、应用程序、网络、设备和其他托管组件。 CIM 由分布式管理任务组 (DMTF) 开发和维护。

从Windows 2000开始,直到最新的Windows 11,WMI一直内置于Windows操作系统中,并且成为了Windows系统管理的重要组成部分。通过WMI,不仅可以获取想要的计算机数据,而且还可以用于远程操作。

因而,在sysInfo中尽量使用wmi获取信息,这样可以避免直接调用 API函数时可能遇到的Windows 版本的差异。

四、WMI的不足

但在实际编写代码过程中,还是感到 WMI存在一些不如意的地方:

(一)WMI提供的命名空间因Windows版本而异

比如通过安全中心(root/Security/Center)可以获取系统中安装的杀毒软件信息,但安全中心是从Windows XP SP2 的WMI开始提供的,对于Windows XP SP2 之前的Windows系统,获取系统中安装的杀毒软件信息需要通过其它的渠道。

(二)WMI提供的信息内容因Windows版本而异

比如对于Win32_Product的信息类:

[Provider("MSIProv"), Dynamic]
class Win32_Product : CIM_Product
{
  uint16   AssignmentType;
  string   Caption;
  string   Description;
  string   IdentifyingNumber;
  string   InstallDate;
  datetime InstallDate2;
  string   InstallLocation;
  sint16   InstallState;
  string   HelpLink;
  string   HelpTelephone;
  string   InstallSource;
  string   Language;
  string   LocalPackage;
  string   Name;
  string   PackageCache;
  string   PackageCode;
  string   PackageName;
  string   ProductID;
  string   RegOwner;
  string   RegCompany;
  string   SKUNumber;
  string   Transforms;
  string   URLInfoAbout;
  string   URLUpdateInfo;
  string   Vendor;
  uint32   WordCount;
  string   Version;
};

其中有些成员只对某些Windows版本有意义。比如AssignmentType、HelpLink、InstallSource等,对于Windows 2003无效。

五、参考资料

关于 WMI - Win32 apps | Microsoft Learn

Win32_Product class (Windows) | Microsoft Learn


标签:Product,string,Windows,信息,WMI,sysInfo
From: https://blog.51cto.com/endurer/7608046

相关文章

  • 网安工具 | Windows便携式渗透测试环境PentestBox入门到进阶使用指南
    [点击......
  • Windows 安装并配置 MySQL 5.7
    Windows安装并配置MySQL5.7 Windows下安装MySQL有两种方式:下载安装包,根据向导提示一步步安装,不需要什么配置,比较简单下载压缩包,通过命令来安装和配置本文介绍第二种安装方法,使用的MySQL版本为5.7.38假设你已经下载了MySQL压缩文件安装包(官网下载地址:https://www.mysql.......
  • 界面组件DevExpress VCL v23.2新功能预览 - 支持Windows 11
    距离DevExpressVCL 下一个主要更新(v23.2)还有几个月的时间,本文将为大家描述预计在12月初为激活的DevExpressVCL用户发布的一些功能。正如你将在下面看到的,重点领域将继续保持高DPI/SVG和Windows11的支持。DevExpressVCL所包含的控件有:数据录入、图表、数据分析、导航、布局......
  • windows系统上的github项目的上传和下载
    通过把远程仓库文件克隆下来,再添加自己需要上传的文件,再上传到远程仓库。 1、下载git工具:https://gitforwindows.org/下载安装之后,右键鼠标会出现两个新选项,分别为[GitGUIHere],[GitBashHere] 2、进入GitHub首页,点击Newrepository新建一个项目仓库Re......
  • vscode运行html文件,显示"windows找不到'chrome'文件"
     运行html文件时,弹窗报错。大部分原因是因为chrome浏览器位置不对。这时,我们只要在vscode中修改chrome路径就可以解决:1、首先我们右击chrome浏览器找到属性,并且复制目标路径 2、打开vscode,在设置中找到Liveserver,打开setting.json文件,添加上chrome文件即可(将路径中的\改......
  • Windows 10 新系统设定
    今天把工位电脑又安了一个windows10,之前是windows7,有很多有用的软件实在安不了,比如python最新版本还有office。简单记录一下初始配置:基础基础工具:激活工具......
  • Windows Server 2019 使用 WSL(Linux子系统(官方发行WSL版))
    启用适用于Linux的Windows子系统必须启用“适用于Linux的Windows子系统”可选功能并重启,然后才能在Windows上运行Linux发行版。以管理员身份打开PowerShell并运行:Enable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Windows-Subsystem-Linux下......
  • Windows Server 2019 使用 WSL(Linux子系统(Centos非官方发行版))
    启用适用于Linux的Windows子系统必须启用“适用于Linux的Windows子系统”可选功能并重启,然后才能在Windows上运行Linux发行版。以管理员身份打开PowerShell并运行:Enable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Windows-Subsystem-Linux下......
  • 基于jquery开发的Windows 12网页版
    预览https://win12.gitapp.cn首页代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="refresh"content="0;url=desktop.html"/><metaname=&q......
  • python操作windows桌面实现鼠标、键盘操作,python之pyautogui库文档详解
    文章目录一、概述1、概述2、安装二、屏幕操作1、获取屏幕分辨率2、某个坐标是否在屏幕上3、获取当前鼠标位置三、鼠标操作1、移动鼠标2、点击操作3、滚轮操作4、记录光标小程序5、鼠标拖拽6、缓动/渐变(Tween/Easing)函数99、保护措施(FAILSAFE)99、延迟操作(PAUSE)四、键盘操作1、......