
set wmi=GetObject("winmgmts:\\\root\CIMV2")
set w=wmiExecQuery("select from win32_processor")
a="CPU名称"
for each i in w
a=a & vbcrlf & iName
next
set w=wmiExecQuery("select from win32_ComputerSystem")
a=a & vbcrlf & vbcrlf & "内存大小"
for each i in w
a=a & vbcrlf & iTotalPhysicalMemory
next
set w=wmiExecQuery("select from win32_DiskDrive")
a=a & vbcrlf & vbcrlf & "硬盘大小"
for each i in w
a=a & vbcrlf & iSize
next
set w=wmiExecQuery("select from win32_LogicalDisk where DriveType='3'")
a=a & vbcrlf & vbcrlf & "盘符----大小"
for each i in w
a=a & vbcrlf & iDeviceID & " ---- " & iSize
next
set w=wmiExecQuery("select from win32_NetworkAdapter")
a=a & vbcrlf & vbcrlf & "网络适配器"
for each i in w
a=a & vbcrlf & iProductName
next
Set w = wmiExecQuery("Select from Win32_NetworkAdapterConfiguration Where IPEnabled=True")
a=a & vbcrlf & vbcrlf & "MAC地址"
For Each i in w
a=a & vbcrlf & iMACAddress
Next
set w=wmiExecQuery("select from win32_VideoController")
a=a & vbcrlf & vbcrlf & "显卡型号----显存"
for each i in w
a=a & vbcrlf & iName & " ---- " & iAdapterRAM
next
Set FSO = CreateObject("ScriptingFileSystemObject")
set f=fsoopentextfile("xinxitxt",2,true)
fwrite "电脑信息:" & vbcrlf & vbcrlf & a
fclose
msgbox "OK"
说明:程序运行约2s(因为读取硬件信息)
部分程序命令可能出错(电脑禁用)
结果保存为“xinxitxt”
systeminfo | find "system model" /i
wmic bios get serialnumber 获取硬件序列号
"wmic csproduct get name" 获取型号
远程: systeminfo /s computername
wmic /node:"IPorCOMPUTERNAME" bios get serialnumber
WMIC /NODE:"computer1" /USER:"domainname\username" /PASSWORD:"userpassword" OS GET Caption,CSDVersion,CSName
如何获取电脑序列号的两种方法: 第二种可以获取域中远程的电脑>
你觉得wmi不安全的话,可以把它关了,但是要知道别人获取你的什么信息那就难了。
一个可行的方式是定义相应的规则截获相应的数据封包,然后再查看封包的内容。这方面的规则你可就得好好研究研究windows体系结构了,估计在这里很难有人能回答你
wmi、注册表、shell等编程方法,可以获取到和windows设备管理器相同的信息,如果设备管理器没有,标准编程方法是获取不到的。
鲁大师的检测获取,可不是简单代码可以完成的,如果不是商业应用,建议放弃,太麻烦了。这个首先,需要做一个r0级别的驱动程序,才可以直接获取硬件信息,然后窗口程序和驱动程序进行信息交互。(对未识别硬件的简单识别或SSD这样的简单判断,这样做就可以)
但获取后,实际只是一组标识数据,是无法直接确定品牌和版本的,也无法直接判断ssd的参数和品牌。要像鲁大师那样详细的驱动信息,实际是需要一个非常详细的硬件信息对比库,将r0获取的硬件标识数据和数据库中每个产品的信息作对比,尤其是山寨产品,数据标识混乱,还需要一个智能匹配逻辑,根据周边信息作综合判定。这可不是一个简单的事情,可以说是鲁大师的“发家”根本。
这1500台电脑的登录帐号/密码是否一样?如果不一样,需要对每台电脑提供一个凭据,假如你的帐号密码信息保存在D:\Infocsv,计算机名在ComputerName一列,用户名在Username一列,密码在Password一列,如下:
$Infos = Import-Csv -Path D:\Infocsvforeach ($Info in $Infos)
{
$computer = $InfoComputerName
$Username = $InfoUsername
$Password = ConvertTo-SecureString -String $InfoPassword -AsPlainText -Force
$cred = New-Object SystemManagementAutomationPSCredential($Username, $Password)
$BIOS = Get-WmiObject -Class Win32_BIOS -ComputerName $computer -Credential $cred
$BIOSName = $BIOSName
$BIOSVersion = $BIOSVersion
Add-Content -Path D:\Summarytxt -Value "-----Information of $computer-----"
Add-Content -Path D:\Summarytxt -Value "BIOS Name: $BIOSName"
Add-Content -Path D:\Summarytxt -Value "BIOS Version: $BIOSVersion"
#其它参数可以参考网上的资料
}
如果用户名和密码都是一样的,则可以省略掉创建凭据的一部分,同时可以省略参数-Credential $cred
如果发链接,可能会被提示非法,提交失败的。如果有问题请百度一下资料,或追问。
VB可以使用Windows管理设备(WMI)进行读取计算机硬件信息。
Dim s, System, item
Dim i As Integer
Set System = GetObject("winmgmts:")InstancesOf("Win32_ComputerSystem")
For Each item In System
‘List1AddItem itemcputype
s = "Computer Info" & vbCrLf
s = s & "" & vbCrLf
s = s & "计算机名称: " & itemname & vbCrLf
s = s & "状态: " & itemStatus & vbCrLf
s = s & "类型: " & itemSystemType & vbCrLf
s = s & "生产厂家: " & itemManufacturer & vbCrLf
s = s & "型号: " & itemModel & vbCrLf
s = s & "内存: ~" & itemtotalPhysicalMemory \ 1024000 & "mb" & vbCrLf
s = s & "域: " & itemdomain & vbCrLf
‘s = s & "工作组" & itemWorkgroup & vbCrLf ‘获得工作组和域的选项不能同时用
s = s & "当前用户: " & itemusername & vbCrLf
s = s & "启动状态" & itemBootupState & vbCrLf
s = s & "该计算机属于" & itemPrimaryOwnerName & vbCrLf
s = s & "系统类型" & itemCreationClassName & vbCrLf
s = s & "计算机类类型" & itemDescription & vbCrLf
For i = 0 To 1 ‘这里假设安装了两个系统
s = s & Chr(5) & "启动选项" & i & " :" & itemSystemStartupOptions(i) _
& vbCrLf
Next i
Next
Text1Text = s
运行上面的代码后,在textBox中就可以显示计算机的信息。
在上面的代码中,程序通过GetObject("winmgmts:")获得WMI对象,然后获得下面的
Win32_ComputerSystem子项并通过访问Win32_ComputerSystem对象中的分项获得系统中的信息。
需要说明的是,并不是所有的系统都支持WMI,在有些系统中无法显示生产厂家等信息。
tmpstr=""
set fso=createObject("scriptingfilesystemObject")
Set dc = fsoDrives
for each d in dc
If disReady Then
tmpstr=tmpstr & "磁盘" & dDriveLetter & ":" & vbcrlf &_
"可用空间:" & (dAvailableSpace/1024/1024/1024) & " GB" & vbcrlf &_
"空余空间:" & (dFreeSpace/1024/1024/1024) & " GB" &vbcrlf &_
"总空间大小:" & (dTotalSize/1024/1024/1024) & " GB" &vbcrlf &_
"文件系统:" & dFileSystem & vbcrlf &_
"驱动器类型:" & dDriveType &vbcrlf &_
"是否就绪:" & dIsReady &vbcrlf &_
"路径:" & dPath &vbcrlf &_
"根目录:" & dRootFolder &vbcrlf &_
"序列号:" & dSerialNumber &vbcrlf &_
"共享名:" & dShareName &vbcrlf &_
"卷名:" & dVolumeName &vbcrlf &vbcrlf
End If
Next
msgbox tmpstr
以上就是关于求VBS获取电脑硬件信息,并保存全部的内容,包括:求VBS获取电脑硬件信息,并保存、如何直接获取systeminfo 里面的OS信息、如何知道网站利用JS通过WMI获取客户端哪些硬件的信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)