vbs查询局域网内电脑的软件和硬件列表清单

下面的代码在windows下容易报毒大家可以放心使用

'==========================================================================
'
' Date:2009/3/19
' Name: 查询软件和硬件列表清单
' Author:Smileruner
' www.overmcse.com
' 不支持Win2000及WinNT
'
' 3/19,添加了网卡过滤。
'==========================================================================
'on error resume Next

const HKEY_LOCAL_MACHINE = &H80000002
const UNINSTALL_ROOT = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
const REG_SZ = 1

'Set wshshell=wscript.createobject("wscript.shell")
' wshshell.run ("%comspec% /c regsvr32 /s scrrun.dll"),0,true
' wshshell.run ("%comspec% /c sc config winmgmt start= auto"),0,true
' wshshell.run ("%comspec% /c net start winmgmt"),0

strComputer = Inputbox("请输入要查询的计算机名称",,"")

If strComputer = "" then
    Wscript.Echo "未输入值或用户取消,查询退出。"
    Wscript.Quit
End If

Set objswbemlocator = createobject("wbemscripting.swbemlocator")
Set objswbemservices = objswbemlocator.connectserver(strComputer, "root\cimv2")
If Err.number <> 0 then
    Wscript.Echo "目标计算机无法连接。错误的计算机名,或目标计算机启用了防火墙,RPC服务不可用。"
    Err.number.clear
    Wscript.Quit
End If

'swbemservices.security_.impersonationleobjvel = 3

Set fso=createobject("scripting.filesystemobject")
FileDate = Replace(date(), "/", "-")
resoultfilepath= strComputer & FileDate & ".html"
Set resultFile= fso.createtextfile(resoultfilepath,,true)

HtmlWriteHead()
'Html文档开始

TableHead strComputer,"硬件清单"
'Html表格开始

OsWrite()
            '写入操作系统信息
BoardWrite()
            '写入主板信息
CpuWrite()
            '写入CPU信息
MemoryWrite()
            '写入内存信息
HarddiskWrite()
            '写入硬盘信息
CdromWrite()
            '写入CDROM信息
VideoWrite()
            '写入显示卡信息
NetcardWrite()
            '写入网卡信息
TableEnd()
            'Html表格结尾
TableHead strComputer,"软件清单"
            'Html表格开头
Softlist()
            '写入软件信息
TableEnd()
            'Html表格结尾
HtmlWriteEnd()
            'Html文档结束

ResultFile.close
Wscript.Echo "查询完成!"

'=========以下是函数列表==========

Function OsWrite()
        '函数,写入操作系统信息
    Set colOs =objswbemservices.execquery("select * from win32_operatingsystem",,48)
    For Each Ositem In colOs
        oscaption = Ositem.caption
        OsVersion = oscaption & Ositem.version
        WriteTable "操作系统",OsVersion
    Next
End Function 

Function BoardWrite()
        '函数,写入主板信息
    Set colBoard = objswbemservices.execquery("select * from win32_baseboard")
    For Each Bditem In colBoard
        boardname = Bditem.product
        WriteTable "主板",boardname
    Next
End Function 

Function CpuWrite()
        '函数,写入CPU信息
    Set colCpu =objswbemservices.execquery("select * from win32_processor")
    For Each item in colCpu
        cpuname = (trim(item.name))
        WriteTable "中央处理器",cpuname
    Next
End Function 

Function MemoryWrite()
        '函数,写入内存信息
mtotal    = 0
num     = 0
mill     = 0
    Set colMemory = objswbemservices.execquery("select * from win32_physicalmemory",,48)
    For Each objitem In colMemory
        mill = objitem.capacity/1048576
        WriteTable "单根内存容量",mill & "M"
        mtotal = mtotal+mill
        num = num + 1
    Next
    WriteTable "总计内存",num & "条" & "一共" & mtotal & "M"
End Function 

Function HarddiskWrite()
        '函数,写入硬盘信息
    Set colDisk = objswbemservices.execquery("select * from win32_diskdrive", , 48)
    For Each objitem In colDisk
        diskname= objitem.caption
        disksize= fix(objitem.size/1073741824)
        WriteTable "硬盘",diskname & " 容量:" & disksize & "G"
    Next
End Function 

Function CdromWrite()
        '函数,写入CDROM信息
    Set colCdrom = objswbemservices.execquery("select * from win32_cdromdrive where scsitargetid=0")
    For Each objitem In colCdrom
        cdname = objitem.name
        WriteTable "光驱",cdname
    Next
End Function

Function videoWrite()
        '函数,写入显示卡信息
    Set colVideo = objswbemservices.execquery("select * from win32_videocontroller", , 48)
    For Each objitem in colVideo
        videoname = (trim(objitem.caption) & (objitem.videomodedescription))
        WriteTable "显示卡",videoname
    Next
End Function 

Function netcardWrite()
        '函数,查询网卡信息
    Set colNetcards = objswbemservices.execquery("select * from win32_networkadapter")
        For Each objNetcard in colNetcards
        If Not IsNull(objNetcard.NetConnectionID) Then
            NetCardName     = objNetcard.productname
                WriteTable "网卡名称",NetCardName

            If objNetcard.NetConnectionStatus = 2 Then
            NetCardMac     = objNetcard.macaddress
            WriteTable "网卡Mac",NetCardMac

            strQueryIp ="select * from win32_networkadapterconfiguration" &_
                     " where IPEnabled = true" &_
                     " and macaddress = '" & objNetcard.macaddress & "'"
            Set colNetcardCfgs = objswbemservices.execquery(strQueryIp)
            For Each objNetcardCfg in colNetcardCfgs
                For Each CfgAdrress in objNetcardCfg.IPAddress
                    IpAdrress = CfgAdrress
                    WriteTable "IP地址",IpAdrress
                Next
            Next    

            Else

            NetCardMac = "网卡被禁用或未连接。"
            WriteTable "网卡Mac",NetCardMac
            IpAdrress = "网卡被禁用或未连接。"
            WriteTable "IP地址",IpAdrress    

            End If

        End if

        Next
End Function 

Function softlist()
        '函数,写入软件信息
Set StdOut = WScript.StdOut
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv") 

strKeyPath = UNINSTALL_ROOT 

oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys 

For Each strSubKey In arrSubKeys
    If NotHotfix(strSubKey) Then
        SoftNameAndVersion = getProgNameAndVersion(oReg,strKeyPath & "\" & strSubKey)
        If SoftNameAndVersion<>"0" Then
        WriteTable "软件",SoftNameAndVersion
        End If
    End If
Next
End Function

Function NotHotfix(sSubKey)
    If Left(sSubkey,2) = "KB" And len(sSubkey) = 8 Then
        NotHotfix = 0
    Else NotHotfix = 1
    End if
End Function

Function getProgNameAndVersion(oReg,sKeyRoot)
Dim sKeyValuesAry, iKeyTypesAry, nCnt, sValue, sDisplayName, sDisplayVersion
oReg.EnumValues HKEY_LOCAL_MACHINE, sKeyRoot, sKeyValuesAry, iKeyTypesAry
    If NOT IsArray(sKeyValuesAry) Then
        getProgNameAndVersion = 0
        Exit Function
    End If

    For nCnt = 0 To UBound(sKeyValuesAry)
        If InStr(1, sKeyValuesAry(nCnt), "DisplayName", vbTextCompare) Then
            If iKeyTypesAry(nCnt) = REG_SZ Then
                oReg.GetStringValue HKEY_LOCAL_MACHINE, sKeyRoot, sKeyValuesAry(nCnt), sValue
                If sValue<>"" Then
                    sDisplayName = sValue
                    sDisplayName = Replace(sDisplayName, "[", "(")
                    sDisplayName = Replace(sDisplayName, "]", ")")
                End If
            End If
        ElseIf InStr(1, sKeyValuesAry(nCnt), "DisplayVersion", vbTextCompare) Then
            If iKeyTypesAry(nCnt) = REG_SZ Then
                oReg.GetStringValue HKEY_LOCAL_MACHINE, sKeyRoot, sKeyValuesAry(nCnt), sValue
                If sValue<>"" Then sDisplayVersion = sValue
            End If
        End If

        If (sDisplayName<>"") AND (sDisplayVersion<>"") Then
            getProgNameAndVersion = sDisplayName & " --版本号: " & sDisplayVersion
            Exit Function
        Else     getProgNameAndVersion = 0
        End If
    Next

    If sDisplayName<>"" Then
        getProgNameAndVersion = sDisplayName
        Exit Function
    End If
End Function

Function WriteTable(caption,value)
        '函数,将数据写入HTML单元格
resultFile.Writeline "<tr>"
resultFile.Writeline "<td align=""left"" width=""30%"" height=""25"" bgcolor=""#ffffff"" scope=""row"">&nbsp;&nbsp;" & caption & "</td>"
resultFile.Writeline "<td bgcolor=""#ffffff"">&nbsp;&nbsp;" & value & "</td>"
resultFile.Writeline "</tr>"
End Function 

Function HtmlWriteHead()
        '函数,写入THML文件头
resultFile.Writeline "<html>"
resultFile.Writeline "<head>"
resultFile.Writeline "<title>软硬件配置清单</title>"
resultFile.Writeline "</head>"
resultFile.Writeline "<body>"
End Function 

Function HtmlWriteEnd()
        '函数,写入Html文件尾
resultFile.Writeline "</body>"
resultFile.Writeline "</html>"
End Function 

Function TableHead(pcname,str)
        '函数,写入Html表格结尾
resultFile.Writeline "<h3>" & pcname & str & " -- date:"&now()&" </h3>" & VbCrLf
resultFile.Writeline "<table width=""90%"" border=""0"" align=""center"" cellpadding=""0"" cellspacing=""1"" bgcolor=""#0000ff"">"
resultFile.Writeline "<tr>"
resultFile.Writeline "<th width=""30%"" height=""25"" bgcolor=""#ffffff"" scope=""col"">资产类型</th>"
resultFile.Writeline "<th bgcolor=""#ffffff"" scope=""col"">查询结果值</th>"
resultFile.Writeline "</tr>"
strstyle = "<th width=""30%"" height=""25"" bgcolor=""#ffffff"" scope=""row"">"
End Function 

Function TableEnd()
        '函数,Html表格结尾
resultFile.Writeline "</table>"
End Function 

vbs判断操作系统

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objItem in colItems
strOSVersion = objItem.Version
Next
wscript.echo strOSversion
select case strOSversion
case "5.2.3790"
wscript.echo "Windows Server 2003"
case "5.0.2195"
wscript.echo "Windows 2000"
case "5.1.2600"
wscript.echo "Windows XP"
case "6.0.6001"
wscript.echo "windows visita"
Case "6.1.7601"
wscript.echo "Windows Server 2008 r2"
case else
wscript.echo "i don't know"
end select

到此这篇关于vbs查询局域网内电脑的软件和硬件列表清单的文章就介绍到这了,更多相关查询软件和硬件列表清单内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • vbs查询局域网内电脑的软件和硬件列表清单

    下面的代码在windows下容易报毒大家可以放心使用 '========================================================================== ' ' Date:2009/3/19 ' Name: 查询软件和硬件列表清单 ' Author:Smileruner ' www.overmcse.com ' 不支持Win2000及WinNT ' ' 3/19,添加了网卡过滤. '===============================

  • 局域网内建基于CS模式的点歌台

    小马所在寝室中,只有他的电脑配有音箱,其余几位兄弟的只配备了耳麦,小马经常大音量播放歌曲很让兄弟们眼馋,他们多次跑到小马的电脑上来播放喜欢的歌曲,让小马玩游戏的时间大为减少.小马碍于情面不好多说,由于同宿舍的兄弟的电脑都在一个局域网内,他决定搭建一个网内点歌台,好让兄弟们在自己电脑上能点歌而不占用小马宝贵的游戏时间.小马搭建点歌台所用的工具是"思思音乐点播系统",使用这个基于C/S模式的软件非常方便. 软件名称:思思音乐点播系统软件版本:1.0软件大小:174KB软件性质:共享软件应用

  • 局域网内架设DNS服务器要谨慎

    DNS(Domain Name Server)是一个巨大的分布式数据库,它通过域名服务器提供一个指定域的信息来实现域名的解析,域名服务器负责将域名转换为IP地址.将Internet中的所有域名信息都放在同一台计算机中是不可能的,因此DNS系统采用树形结构,将不同层次域的域名信息分别存储在不同的域名服务器中,最高层为根域服务器. 由于企业办公需要,笔者在局域网内部署了DNS服务器,所有客户机上的DNS服务器地址参数都设置为该服务器的IP地址.并且还在DNS服务器中新建了一个名为"knowsky.c

  • 树莓派与PC端在局域网内运用python实现即时通讯

    电脑和树莓派在同一局域网内,先在电脑和树莓派创建python运行环境,然后在树莓派中用python运行rpi.py:在电脑上运行computer.py:电脑上输入字符即可在树莓派上即时显示! rpi.py #coding:utf-8 #import necessary package import socket import time import sys HOST_IP = "192.168.31.151" #树莓派的IP地址 HOST_PORT = 8888 print("

  • 局域网内python socket实现windows与linux间的消息传送

    有个需求,就是在windows上看见一篇介绍linux相关的文章,想在局域网内的另外一台linux电脑上尝试一下, 于是就需要把该网页链接发送给linux,不想一点一点敲链接,又苦于没有找到其它好的方法. 想起之前学习计算机网络时了解到的socket,于是再次打开课本,代码(python3)如下: 客户端(windows)代码: # 局域网内的windows客户端 from socket import * #导入socket里的所有东西 serverName = '127.0.0.1' #换成局

  • python编写简易聊天室实现局域网内聊天功能

    本文实例为大家分享了python实现局域网内聊天功能的具体代码,供大家参考,具体内容如下 功能: 可以向局域网内开启接收信息功能的ip进行发送信息,我们可以写两段端口不同的代码来实现在一台电脑上与自己聊天. 关键点: 要想实现此功能必须将程序的端口固定 from socket import * def udp_send(udp_socket): # 发送消息 接收用户输入内容 send_mes = input("请输入发送内容:") # 接收用户输入ip ip = input(&quo

  • 利用python库在局域网内传输文件的方法

    1.电脑已经搭建python环境 2.深入到需要传输的文件目录下,此处以分享 nemo-huiyuanfei 文件为例 3.在路径栏输入 cmd 按回车进入终端 4.输入命令 python -m SimpleHTTPServer 8090 按回车 (端口号可以任意,不用必须为8090) 5.在局域网中任意浏览器输入框输入 文件所在主机 IP + Port 即可访问此文件目录并下载 () 6.点击需要下载的文件即可下载 7. [注意]python3.X 的命令输入为 python -m http.

  • Win10搭建FTP服务器实现局域网内访问

    本文为大家分享了Win10搭建FTP服务器实现局域网内访问的具体实现方法,供大家参考,具体内容如下 前言 遇到办公网络差的不行,微信发个文件起步10分钟,这谁受得了. 步骤 1.控制面板–程序–程序和功能–启用或关闭windows功能 2.在“windows功能”中找到以下选项: 3.Internet Information Services,展开,选中“FTP服务器”下的“FTP服务”.“FTP扩展性”,以及“Web管理工具”下的“IIS管理控制台”,点击“确定”. 4.在电脑开始按钮右边的搜

  • 使用Java代码获取服务器性能信息及局域网内主机名

    最近做个项目,就是要取得cpu占有率等等的系统信息,一开始以为要用动态链接库了,但后来发现可以像下面这样做,不去调用jni,这样省去了很多看新技术的时间o(∩_∩)o... 在Java中,可以获得总的物理内存.剩余的物理内存.已使用的物理内存等信息,下面例子可以取得这些信息,并且获得在Windows下的内存使用率.      首先编写一个MonitorInfoBean类,用来装载监控的一些信息,包括物理内存.剩余的物理内存.已使用的物理内存.内存使用率等字段,该类的代码如下: package c

  • 局域网内部署 Docker Registry(推荐)

    在局域网内部署 Docker Registry 可以极大的提升平时 pull.push 镜像的速度,从而缩短自动化操作的过程.同时也可以缓解带宽不足的问题,真是一举多得.本文将从创建单机的 Docker Registry 开始,逐步完成局域网内可用的 Docker Registry 的创建,并重点解释如何使用 IP 地址访问 Registry 的方法. 注意,本文假设你已经在使用的 OS 中安装了 docker 引擎. 创建本机使用的 Docker Registry 这是一个非常简单的过程,简单

随机推荐