[原创]调用api生成wmi应用(查询硬件信息)
2023-7-25 1092

1.webp

 

QQ截图20230725124225.webp

 


 参数1:   WMI 命名空间的对象路径,比如: Root\cimv2 或 Root\microsoft\windows\storage 或 \\.\root\default 等
 参数2:   计算机系统硬件的类,比如: Win32_PhysicalMemory 或 Win32_OperatingSystem 或 MSFT_PhysicalDisk 等
 参数3:   类中包含的属性名称,比如: Index 或 SerialNumber 等,多个名称用空格或逗号分隔,整体用双引号包括。
          为空或 * 时,检索该类中所有属性。比如: "Caption Description SettingID" 或 Caption,Description,SettingID
 参数4:   where命令,比如: "where Priority >= 11" 或 "where ProcessID > 4000" 或 "where name LIKE '[A-P]%'" 等
 /help:   显示本帮助。pecmd 脚本中应开启 set^ EnviMode=1 再 /help,否则会错乱。

 示例:
 wmi_x86.exe   Root\cimv2   Win32_DiskDrive
 wmi_x86.exe   Root\cimv2   Win32_DiskDrive  Index,SerialNumber

 注意:
 如果调用wcs,最好是开一个新进程,避免莫名其妙的问题:
 exec* -err+ -incmd a=pecmd load "%CurDir%\wmi.wcs"

 例:
 获取硬盘序列号:       exec* -err+ -incmd a=pecmd load "%CurDir%\wmi.wcs"   Root\cimv2   Win32_DiskDrive   Index,SerialNumber
                       mess~ %a%

 获取主板序列号:       exec* -err+ -incmd b=pecmd load "%CurDir%\wmi.wcs"   Root\cimv2   Win32_BaseBoard   SerialNumber
                       mess~ %b%

 获取 CPU 编号:        exec* -err+ -incmd c=pecmd load "%CurDir%\wmi.wcs"   Root\cimv2   Win32_Processor   DeviceID,ProcessorId
                       mess~ %c%

 获取物理内存序列号:   exec* -err+ -incmd d=pecmd load "%CurDir%\wmi.wcs"   Root\cimv2   Win32_PhysicalMemory    "DeviceLocator SerialNumber"
                       mess~ %d%

 获取网络适配器信息:   exec* -err+ -incmd e=pecmd load "%CurDir%\wmi.wcs"   Root\cimv2   Win32_NetworkAdapter    Index,Name,MACAddress,GUID,PNPDeviceID,NetConnectionID,Speed,NetConnectionStatus,NetEnabled
                       mess~ %e%

 获取操作系统信息:     exec* -err+ -incmd f=pecmd load "%CurDir%\wmi.wcs"   Root\cimv2   Win32_OperatingSystem   "Caption CSDVersion Version BuildNumber CodeSet CountryCode BootDevice SystemDevice SystemDirectory"
                       mess~ %f%

 获取磁盘信息:         exec* -err+ -incmd g=pecmd load "%CurDir%\wmi.wcs"   Root\microsoft\windows\storage   MSFT_PhysicalDisk   "DeviceId SpindleSpeed MediaType BusType"
                       mess~ %g%

 获取网络信息:         exec* -err+ -incmd h=pecmd load "%CurDir%\wmi.wcs"   Root\cimv2   Win32_NetworkAdapterConfiguration       "Index Description MACAddress IPSubnet DefaultIPGateway DNSServerSearchOrder DHCPServer IPAddress DHCPEnabled IPEnabled"
                       mess~ %h%

 获取smbios内存信息:   exec* -err+ -incmd h=pecmd load "%CurDir%\wmi.wcs"   Root\cimv2   Win32_SMBIOSMemory    "DeviceID Description StartingAddress EndingAddress"
                            mess~ %h%

 获取操作系统完整信息: exec* -err+ -incmd i=pecmd load "%CurDir%\wmi.wcs"   Root\cimv2   Win32_OperatingSystem
                       mess~ %i%







 如果实在不想开一个新进程,也可以强制在本进程 load,返回变量名为 WbemInformation:

 load -this "%CurDir%\wmi.wcs" Root\cimv2 Win32_DiskDrive Index,SerialNumber
 mess~ 硬盘序列号:\n%WbemInformation%

 load -this "%CurDir%\wmi.wcs" Root\cimv2 Win32_BaseBoard SerialNumber
 mess~ 主板序列号:\n%WbemInformation%

 load -this "%CurDir%\wmi.wcs" Root\cimv2 Win32_Processor DeviceID,ProcessorId
 mess~ cpu编号:\n%WbemInformation%

 load -this "%CurDir%\wmi.wcs" Root\cimv2 Win32_PhysicalMemory "DeviceLocator SerialNumber"
 mess~ 物理内存序列号:\n%WbemInformation%

 load -this "%CurDir%\wmi.wcs" Root\cimv2 Win32_NetworkAdapter Index,Name,MACAddress,GUID,PNPDeviceID,NetConnectionID,Speed,NetConnectionStatus,NetEnabled
 mess~ 网络适配器:\n%WbemInformation%

 load -this "%CurDir%\wmi.wcs" Root\cimv2 Win32_OperatingSystem "Caption CSDVersion Version BuildNumber CodeSet CountryCode BootDevice SystemDevice SystemDirectory"
 mess~ 操作系统:\n%WbemInformation%

 load -this "%CurDir%\wmi.wcs" Root\microsoft\windows\storage MSFT_PhysicalDisk "DeviceId SpindleSpeed MediaType BusType"
 mess~ 磁盘信息:\n%WbemInformation%

 load -this "%CurDir%\wmi.wcs" Root\cimv2 Win32_NetworkAdapterConfiguration "Index Description MACAddress IPSubnet DefaultIPGateway DNSServerSearchOrder DHCPServer IPAddress DHCPEnabled IPEnabled"
 mess~ 网络信息:\n%WbemInformation%

 load -this "%CurDir%\wmi.wcs"   Root\cimv2   Win32_SMBIOSMemory    "DeviceID Description StartingAddress EndingAddress"
 mess~ smbios内存信息:\n%WbemInformation%

 load -this "%CurDir%\wmi.wcs" Root\cimv2 Win32_OperatingSystem
 mess~ 操作系统完整信息:\n%WbemInformation%







 where命令:

 //获取本地计算机上的记事本进程。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_Process * "where name='Notepad.exe'"
 mess~ %a%

 //查询从进程优先级大于或等于 11 的 Win32_Process 类中的进程中选择 Name 属性。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_Process Name "where Priority >= 11"
 mess~ %a%

 //获取 ProcessID 值大于 4000 的进程。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_Process * "where ProcessID >= 4000"
 mess~ %a%

 //搜索名称以“H”和“N”之间的字母开头(不区分大小写)的进程。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_Process * "where Name LIKE '[H-N]otepad.exe'"
 mess~ %a%

 //搜索名称以 A 和 P 之间的字母开头(不区分大小写)的所有进程,后跟任意组合的零个或多个字母。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_Process * "where name LIKE '[A-P]%'"
 mess~ %a%

 //获取名称不以下列任何字母开头的进程:A、S、W、P、R、C、U、N,后跟零个或多个字母。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_Process * "where name LIKE '[^ASWPRCUN]%'"
 mess~ %a%

 //获取名称以“calc”开头的进程。 WQL 中的 % 符号等效于正则表达式中的星号 (*) 符号。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_Process * "where Name LIKE 'calc%'"
 mess~ %a%

 //获取名称具有以下模式的进程:“c_lc.exe”,其中下划线字符表示任意一个字符。 此模式匹配calc.exe到czlc.exe或c9lc.exe的任何名称,但不匹配“c”和“l”用多个字符分隔的名称。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_Process * "where Name LIKE 'c_lc.exe'"
 mess~ %a%

 //获取名为 WLIDSVC.exe 的进程。 即使查询使用 Like 关键字,也需要完全匹配,因为值不包含任何通配符。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_Process * "where name LIKE 'WLIDSVC.exe'"
 mess~ %a%

 //获取对 IntallDate 属性具有 null 值的进程。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_Process * "where InstallDate is null"
 mess~ %a%

 //相反,以下命令获取 Description 属性具有 null 值的用户帐户。 即使大多数用户帐户对 Description 属性没有任何值,此命令也不会返回任何用户帐户。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_UserAccount * "where Description is null"
 mess~ %a%

 //若要查找没有 Description 属性值的用户帐户,请使用相等运算符获取空字符串。 若要表示空字符串,请使用两个连续的单引号。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_UserAccount * "where Description = ''"
 mess~ %a%

 //以下 WQL 查询仅返回已加入域的计算机的本地用户帐户。 True 和 False 不区分大小写。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_UserAccount * "where LocalAccount = True"
 mess~ %a%

 //若要查找域帐户,请使用 False 值,如以下示例所示。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_UserAccount * "where LocalAccount = False"
 mess~ %a%

 //若要查找名称包含单引号的用户,请使用反斜杠对单引号进行转义,如以下命令中所示。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_UserAccount * "where Name = 'Tim O\'Brian'"
 mess~ %a%

 //若要转义反斜杠,请使用第二个反斜杠字符,如以下命令中所示。
 exec* -err+ -incmd a=pecmd load "%CurDir%\part\setup.wcs" Root\cimv2 Win32_UserAccount * "where Caption = 'Fabrikam\\TimO'"
 mess~ %a%

 

 

最后于 2023-8-9 被527104427编辑 ,原因:
上传的附件:
  • wmi.7z 回复可见(上传时间:2023-08-09 09:34:36,大小:989.01K,下载次数:19)
收藏
点赞
分享
https://www.123pan.com/s/NflRVv-Cm5Sh
最新回复 (16)
  • avatar image
    826773297 2023-7-25

    5大出一个通过smbios获取内存信息的代码

    瞎搞协会会长
  • avatar image
    爱心会员VIP会员
    527104427 2023-7-25
    楼主   3
    826773297 5大出一个通过smbios获取内存信息的代码

    wmi_x86.exe  Root\cimv2  Win32_SMBIOSMemory  "StartingAddress  EndingAddress  DeviceID  Description"

    wmi_x86.exe  Root\cimv2  Win32_SMBIOSMemory

    https://www.123pan.com/s/NflRVv-Cm5Sh
  • avatar image
    wxinchun92 2023-7-25

    学习学习

  • avatar image
    soft2023 2023-7-29

    谢谢大佬

  • avatar image
    smss 2023-7-31

  • avatar image
    anson4 2023-8-4

    感谢分享!

    单机计算
  • avatar image
    pda8888 2023-8-22

    如果PE没有装齐全支持WMI的话,是不能这个脚本的,对吗?

    学习至上
  • avatar image
    mxlee 2023-10-26

    同问楼上问题

  • avatar image
    爱心会员VIP会员
    527104427 2023-10-26
    楼主   10
    mxlee 同问楼上问题

    这,我哪里知道呢,你得试试啊

    https://www.123pan.com/s/NflRVv-Cm5Sh
  • avatar image
    mxlee 2023-10-30

    已试,不成,不过补足组件也很简单

  • avatar image
    CXKJ2021 2024-1-23

    感谢分享

    昨天再好,也走不回去;明天再难,也要抬脚继续。勇往直前...
  • avatar image
    wangfang 2024-2-9

    走過路過不容錯過

    多看,多學,多用心
  • avatar image
    aimengyu 2024-4-12

    走過路過不容錯過

    111
  • avatar image
    dunniu 2024-6-7

    看着信息好丰富!

  • avatar image
    语之男 2024-6-16

    我的PE不行

  • avatar image
    BFWL 2024-6-21

    非常感谢!辛苦了!

    板凳要坐十年冷,文章不写一句空。
返回