找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1693|回复: 10

[精彩文萃] 获取计算机各类软硬件信息的VBS代码集合

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-6-9 15:59:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 st788796 于 2017-6-9 16:02 编辑

复制代码

strComputer = "."
Set objWMIService =GetObject("winmgmts:" _   
   & "{impersonationLevel=impersonate}!\\" & strComputer_
       & "\root\cimv2")
Set colDiskDrives = objWMIService.ExecQuery_   
   ("Select * from Win32_DiskDrive")
For each objDiskDrive in colDiskDrives
   Wscript.Echo "Bytes Per Sector: " & vbTab &  _
       objDiskDrive.BytesPerSector        
   For i = Lbound(objDiskDrive.Capabilities) to _
       Ubound(objDiskDrive.Capabilities)
       Wscript.Echo "Capabilities: " & vbTab &  _
           objDiskDrive.Capabilities(i)
   Next   
   Wscript.Echo "Caption: " & vbTab &  objDiskDrive.Caption
   Wscript.Echo "Device ID: " & vbTab &  objDiskDrive.DeviceID
   Wscript.Echo "Index: " & vbTab &  objDiskDrive.Index
   Wscript.Echo "Interface Type: " & vbTab &objDiskDrive.InterfaceType
   Wscript.Echo "Manufacturer: " & vbTab &objDiskDrive.Manufacturer
   Wscript.Echo "Media Loaded: " & vbTab  & objDiskDrive.MediaLoaded
   Wscript.Echo "Media Type: " & vbTab &  objDiskDrive.MediaType
   Wscript.Echo "Model: " & vbTab &  objDiskDrive.Model
   Wscript.Echo "Name: " & vbTab & objDiskDrive.Name
   Wscript.Echo "Partitions: " & vbTab &objDiskDrive.Partitions
   Wscript.Echo "PNP DeviceID: " & vbTab &  objDiskDrive.PNPDeviceID
   Wscript.Echo "SCSI Bus: " & vbTab &  objDiskDrive.SCSIBus
   Wscript.Echo "SCSI Logical Unit: " & vbTab &  _
       objDiskDrive.SCSILogicalUnit
   Wscript.Echo "SCSI Port: " & vbTab &  objDiskDrive.SCSIPort
   Wscript.Echo "SCSI TargetId: " & vbTab &  objDiskDrive.SCSITargetId   
   Wscript.Echo "Sectors Per Track: " & vbTab &  _
       objDiskDrive.SectorsPerTrack        
   Wscript.Echo "Signature: " & vbTab &  objDiskDrive.Signature         
   Wscript.Echo "Size: " & vbTab &  objDiskDrive.Size         
   Wscript.Echo "Status: " & vbTab &  objDiskDrive.Status         
   Wscript.Echo "Total Cylinders: " & vbTab &  _
       objDiskDrive.TotalCylinders        
   Wscript.Echo "Total Heads: " & vbTab &  objDiskDrive.TotalHeads   
   Wscript.Echo "Total Sectors: " & vbTab &  objDiskDrive.TotalSectors
   Wscript.Echo "Total Tracks: " & vbTab &  objDiskDrive.TotalTracks
   Wscript.Echo "Tracks Per Cylinder: " & vbTab &  _
       objDiskDrive.TracksPerCylinder   
Next

以上代码是读取物理磁盘信息的,非分区信息。。

接下来来个读取光驱的。配合限制来计算注册码很方便。呵呵!!

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\"& strComputer & "\root\cimv2")
Set colItems =objWMIService.ExecQuery("Select * from Win32_CDROMDrive")
For Each objItem in colItems
   Wscript.Echo "Availability: " & objItem.Availability
   For Each strCapability in objItem.Capabilities
       Wscript.Echo "Capability: "& strCapability
   Next
   Wscript.Echo "Caption: " & objItem.Caption
   Wscript.Echo "Description: " & objItem.Description
   Wscript.Echo "Device ID: " & objItem.DeviceID
   Wscript.Echo "Drive: " & objItem.Drive
   Wscript.Echo "Manufacturer: " & objItem.Manufacturer
   Wscript.Echo "Media Loaded: " & objItem.MediaLoaded
   Wscript.Echo "Media Type: " & objItem.MediaType
   Wscript.Echo "Name: " & objItem.Name
   Wscript.Echo "PNP Device ID: " & objItem.PNPDeviceID
   Wscript.Echo "SCSI Bus: " & objItem.SCSIBus
   Wscript.Echo "SCSI Logical Unit: " &objItem.SCSILogicalUnit
   Wscript.Echo "SCSI Port: " & objItem.SCSIPort
   Wscript.Echo "SCSI Target ID: " & objItem.SCSITargetId
Next


接着是能读取 显示设备 显卡 驱动等信息的代码

On Error Resume Next
strComputer = "."
Set objWMIService =GetObject("winmgmts:\\" & strComputer &"\root\cimv2")
Set colItems =objWMIService.ExecQuery("Select * from Win32_DisplayConfiguration")
For Each objItem in colItems
   Wscript.Echo "Bits Per Pel: " & objItem.BitsPerPel
   Wscript.Echo "Device Name: " & objItem.DeviceName
   Wscript.Echo "Display Flags: " & objItem.DisplayFlags
   Wscript.Echo "Display Frequency: " &objItem.DisplayFrequency
   Wscript.Echo "Driver Version: " & objItem.DriverVersion
   Wscript.Echo "Log Pixels: " & objItem.LogPixels
   Wscript.Echo "Pels Height: " & objItem.PelsHeight
   Wscript.Echo "Pels Width: " & objItem.PelsWidth
   Wscript.Echo "Setting ID: " & objItem.SettingID
   Wscript.Echo "Specification Version: " &objItem.SpecificationVersion
   Wscript.Echo
Next


再来读取内存信息的

On Error Resume Next
strComputer = "."
Set objWMIService =GetObject("winmgmts:\\" & strComputer &"\root\cimv2")
Set colItems =objWMIService.ExecQuery("Select * from Win32_MemoryArray")
For Each objItem in colItems
   Wscript.Echo "Device ID: " & objItem.DeviceID
   Wscript.Echo "Ending Address: " & objItem.EndingAddress
   Wscript.Echo "Starting Address: " &objItem.StartingAddress
   Wscript.Echo
Next

继续上个读取 系统信息的代码

strComputer = "."
Set objWMIService =GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer& "\root\cimv2")
Set colSettings = objWMIService.ExecQuery _
   ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colSettings
   Wscript.Echo "OS Name: " & objOperatingSystem.Name
   Wscript.Echo "Version: " & objOperatingSystem.Version
   Wscript.Echo "Service Pack: " & _
       objOperatingSystem.ServicePackMajorVersion _
           & "." & objOperatingSystem.ServicePackMinorVersion
   Wscript.Echo "OS Manufacturer: " &objOperatingSystem.Manufacturer
   Wscript.Echo "Windows Directory: " & _
       objOperatingSystem.WindowsDirectory
   Wscript.Echo "Locale: " & objOperatingSystem.Locale
   Wscript.Echo "Available Physical Memory: " & _
       objOperatingSystem.FreePhysicalMemory
   Wscript.Echo "Total Virtual Memory: " & _
       objOperatingSystem.TotalVirtualMemorySize
   Wscript.Echo "Available Virtual Memory: " & _
       objOperatingSystem.FreeVirtualMemory
   Wscript.Echo "OS Name: " &objOperatingSystem.SizeStoredInPagingFiles
Next

Set colSettings = objWMIService.ExecQuery _
   ("Select * from Win32_ComputerSystem")
For Each objComputer in colSettings
   Wscript.Echo "System Name: " & objComputer.Name
   Wscript.Echo "System Manufacturer: " &objComputer.Manufacturer
   Wscript.Echo "System Model: " & objComputer.Model
   Wscript.Echo "Time Zone: " & objComputer.CurrentTimeZone
   Wscript.Echo "Total Physical Memory: " & _
       objComputer.TotalPhysicalMemory
Next

Set colSettings = objWMIService.ExecQuery _
   ("Select * from Win32_Processor")
For Each objProcessor in colSettings
   Wscript.Echo "System Type: " & objProcessor.Architecture
    Wscript.Echo"Processor: " & objProcessor.Description
Next

Set colSettings = objWMIService.ExecQuery _
   ("Select * from Win32_BIOS")
For Each objBIOS in colSettings
   Wscript.Echo "BIOS Version: " & objBIOS.Version


'本脚本的功能是检测硬件的信息。

On Error Resume Next
temp=0
setwshshell=wscript.createobject("wscript.shell")
'启动WMI服务
wshshell.run ("%comspec% /c regsvr32/s scrrun.dll"),0,True
wshshell.run ("%comspec% /c sc configwinmgmt start= auto"),0,True
wshshell.run ("%comspec% /c net startwinmgmt"),0

strComputer = "."
Set objWMIService =Getobject("winmgmts:\\" & strComputer &"\root\cimv2")

'用一个文本来记录硬件信息

Set WshNetwork =WScript.Createobject("WScript.Network")
computername=WshNetwork.ComputerName

setfso=createobject("scripting.filesystemobject")
tempfilter=("\\192.168.1.5\共享文件\Computer\"&computername &".txt")
set tempfile=fso.createtextfile(tempfilter)

'主板

set board=objwmiservice.execQuery("select * from win32_baseboard")
for each item in board
board2="主板: " &item.Product
next
tempfile.writeline(board2)

'CPU

set cpu=objwmiservice.execQuery("select * from win32_processor")
for each item in cpu
cpu2= "CPU : " & item.Name
next
tempfile.writeline(cpu2)

'内存

Set colItems = objWMIService.ExecQuery("Select* from Win32_PhysicalMemory",,48)
For Each objItem in colItems
a=objitem.capacity/1048576
temp=temp+objitem.capacity
n=n+1
Next
memory=temp/1048576
if n=1 then
memory2= "内存: "& n & "" &a&"M"
else
memory2= "内存: "& n & "" &a&"M"&" 总计"&memory&"M"
end if
tempfile.writeline(memory2)

'硬盘

set disk=objwmiservice.execQuery("select * from win32_diskdrive")
for each item in disk
disk2= disk2 & item.model &""
disk1= "硬盘: "
next
tempfile.write(disk1)
tempfile.writeline(disk2)

'显卡

set video=objwmiservice.execQuery("select * from win32_videocontroller",,48)
for each item in video
video2= "显卡: "& item.Description
next

tempfile.writeline(video2)

'网卡

set network=objwmiservice.execQuery("SELECT * FROM Win32_NetworkAdapterConfigurationWHERE IPEnabled = True")
for each item in network
lan="网卡: " &item.description
next
tempfile.writeline(lan)

systeminfo2="时间: "& now
tempfile.writeline(systeminfo2)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2017-6-9 16:05:55 | 显示全部楼层
Acad 下使用方法

  1. (setq WMI (vlax-create-object "WbemScripting.SWbemLocator"))
  2.        (setq meth1 (VLAX-INVOKE
  3.                      WMI 'ConnectServer        nil nil        nil nil        nil nil        nil nil)
  4.        )
  5.        (setq meth2 (vlax-invoke
  6.                      meth1
  7.                      'ExecQuery
  8.                      "Select * From Win32_OperatingSystem"
  9.                    )
  10.        )

其中的  select * form xxx 使用对应的 语句
然后 遍历 meth2

  1. (vlax-for x meth2
  2.    (vlax-get 'name x)
  3. )
复制代码

其中的 name 在 Wscript.Echo "System Name: " & objComputer.Name 最后一个是属性名称
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2017-6-9 16:17:19 | 显示全部楼层
另外几个

{"操作系统",L"root\\cimv2",L"Select * from Win32_OperatingSystem",itemOperatingSystem},
{"CPU",L"root\\cimv2",L"Select * from CIM_Processor",itemCIM_Processor},
{"内存",L"root\\cimv2",L"Select * from CIM_OperatingSystem",itemCIM_OperatingSystem},
{"注册表",L"root\\cimv2",L"Select * from Win32_Registry",itemWin32_Registry},
{"环境变量",L"root\\cimv2",L"Select * from Win32_Environment",itemWin32_Environment},
{"BIOS",L"root\\cimv2",L"Select * from Win32_BIOS",itemWin32_BIOS},
// {"安全",L"root\\cimv2",L"Select * from Win32_ACE",itemACE},
{"杀毒软件",L"root\\SecurityCenter",L"Select * from AntiVirusProduct",itemAntiVirusProduct},
{"防火墙",L"root\\SecurityCenter",L"Select * from FirewallProduct",itemFirewallProduct},
{"系统服务",L"root\\cimv2",L"Select * from Win32_Service",itemWin32_Service},
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 275个

财富等级: 日进斗金

发表于 2017-6-9 17:46:24 | 显示全部楼层
楼主厉害~从你的主题找到很多有用的东东,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

发表于 2017-6-9 20:52:48 | 显示全部楼层
好象那些
NIL
都可以不用的吧?
有的电脑会出现:
; 错误: SWbemService**: Generic failure
请问大师有办法处理吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2017-6-9 20:57:50 | 显示全部楼层
1 需要启动 WMI 服务
2 Window 7 以上需要管理员权限
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 769个

财富等级: 财运亨通

发表于 2017-6-10 13:55:24 | 显示全部楼层
感谢楼主分享!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2017-6-10 14:06:03 | 显示全部楼层
启动并设置 WMI 服务
_$ (startapp "sc config wmiapsrv start= auto")
33
_$ (startapp "sc start wmispsrv")
33
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-6-10 14:10:30 | 显示全部楼层

ST大师,1、 (startapp "sc config wmiapsrv start= auto")  执行这个是否需要管理员权限呢?
2、如果需要管理员权限,有没有一个函数能判断当前用户是否具有管理员权限?
3、如果当前用户没管理员权限,有没有办法提升到管理员权限?

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2017-6-10 14:57:38 来自手机 | 显示全部楼层
Lisphk 发表于 2017-6-10 14:10

Set args=WScript.Arguments
If 0=args.Count Then Set args=Nothing:WScript.Quit
cmds=args.Item(0)
For i=1 To args.Count-1
para=para & args.Item(i) &" "
Next
WScript.CreateObject("Shell.application").shellexecute cmds, para,"","runas",1
WScript.Quit
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

发表于 2019-5-23 09:48:00 | 显示全部楼层
多谢分享 需要的时候很有用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-25 17:34 , Processed in 0.474671 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表