免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7333 | 回复: 23
打印 上一主题 下一主题

查询电脑硬件软件信息脚本.vbs [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-25 15:05 |只看该作者 |倒序浏览
\'==========================================================================\r\n\'\r\n\' Date:2010/5/26\r\n\' Name: 查询软件和硬件列表清单\r\n\' 不支持Win2000及WinNT\r\n\'\r\n\' 3/19,添加了网卡过滤。\r\n\'==========================================================================\r\n\'on error resume Next\r\n\r\nconst HKEY_LOCAL_MACHINE = &H80000002 \r\nconst UNINSTALL_ROOT = \"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\"\r\nconst REG_SZ = 1\r\n\'==========================================================================\r\n\'Set wshshell=wscript.createobject(\"wscript.shell\")\r\n\' wshshell.run (\"%comspec% /c regsvr32 /s scrrun.dll\"),0,true\r\n\' wshshell.run (\"%comspec% /c sc config  winmgmt start= auto\"),0,true\r\n\' wshshell.run (\"%comspec% /c net start winmgmt\"),0\r\n\r\nstrIPPattern = \"((2[0-4]\\d|25[0-5]|1?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|1?\\d\\d?)\"\r\nSet objNet = createobject(\"Wscript.Network\")\r\nSet objRegExp = New RegExp\r\n\r\nobjregexp.Pattern = strIPPattern\r\nSet objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\r\nSet IPConfigSet = objWMIService.ExecQuery _\r\n    (\"Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE\")\r\nFor Each IPConfig in IPConfigSet\r\n    If Not IsNull(IPConfig.IPAddress) Then \r\n        For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)\r\n                        If InStr(IPConfig.Caption(i),\"VMware\") = 0 And InStr(IPConfig.Caption(i),\"Microsoft\") = 0 Then\r\n                        If InStr(IPConfig.Caption(i),\"169.254\") = 0 And InStr(IPConfig.Caption(i),\"0.0.0.0\") = 0 Then\r\n                                If objregexp.Test(IPConfig.IPAddress(i)) = True Then        \r\n                                    strIP = IPConfig.IPAddress(i)\r\n                            End If\r\n                    End If\r\n            End If\r\n        Next\r\n    End If\r\nNext\r\nstrUser = objnet.UserName\r\nSet objNetwork = CreateObject(\"WScript.Network\") \r\n\r\n\'==========================================================================\r\nstrComputer = objNetwork.ComputerName\r\n\r\nIf strComputer = \"\" then\r\n        Wscript.Echo \"未输入值或用户取消,查询退出。\"\r\n        Wscript.Quit\r\nEnd If\r\n\'==========================================================================\r\nset path=wscript.createobject(\"wscript.shell\") \r\nusera=path.ExpandEnvironmentStrings(\"%username%\") \r\n\'==========================================================================\r\nSet objswbemlocator = createobject(\"wbemscripting.swbemlocator\")\r\nSet objswbemservices = objswbemlocator.connectserver(strComputer, \"root\\cimv2\")\r\nIf Err.number <> 0 then\r\n        Wscript.Echo \"目标计算机无法连接。错误的计算机名,或目标计算机启用了防火墙,RPC服务不可用。\"\r\n        Err.number.clear\r\n        Wscript.Quit\r\nEnd If\r\n\r\n\'swbemservices.security_.impersonationleobjvel = 3\r\n\r\nSet fso=createobject(\"scripting.filesystemobject\")\r\nFileDate = Replace(date(), \"/\", \"-\")\r\nresoultfilepath= strComputer & usera & \".html\"\r\nSet resultFile= fso.createtextfile(resoultfilepath,,true)\r\n\r\nHtmlWriteHead()\r\n\'Html文档开始\r\n\r\nTableHead strComputer,\"硬件清单\" \r\n\'Html表格开始\r\n\r\nOsWrite()        \r\n                        \'写入操作系统信息\r\nBoardWrite()\r\n                        \'写入主板信息\r\nCpuWrite()       \r\n                        \'写入CPU信息\r\nMemoryWrite()        \r\n                        \'写入内存信息\r\nHarddiskWrite()\r\n                        \'写入硬盘信息\r\nCdromWrite()\r\n                        \'写入CDROM信息\r\nVideoWrite()\r\n                        \'写入显示卡信息\r\nNetcardWrite()\r\n                        \'写入网卡信息\r\nTableEnd()\r\n                        \'Html表格结尾\r\nTableHead strComputer,\"软件清单\"\r\n                        \'Html表格开头\r\nSoftlist()\r\n                        \'写入软件信息\r\nTableEnd()\r\n                        \'Html表格结尾\r\nHtmlWriteEnd()\r\n                        \'Html文档结束\r\n\r\nResultFile.close \r\nWscript.Echo \"查询完成!\"\r\n\r\n\'=========以下是函数列表==========\r\n\r\n\r\nFunction OsWrite() \r\n                \'函数,写入操作系统信息\r\n        Set colOs =objswbemservices.execquery(\"select * from win32_operatingsystem\",,48)\r\n        For Each Ositem In colOs\r\n                oscaption = Ositem.caption\r\n                OsVersion = oscaption & Ositem.version\r\n                WriteTable \"操作系统\",OsVersion\r\n        Next\r\nEnd Function \r\n\r\n\r\nFunction BoardWrite()\r\n                \'函数,写入主板信息\r\n        Set colBoard = objswbemservices.execquery(\"select * from win32_baseboard\")\r\n        For Each Bditem In colBoard\r\n                boardname = Bditem.product\r\n                WriteTable \"主板\",boardname\r\n        Next\r\nEnd Function \r\n\r\n\r\nFunction CpuWrite()\r\n                \'函数,写入CPU信息\r\n        Set colCpu =objswbemservices.execquery(\"select * from win32_processor\")\r\n        For Each item in colCpu\r\n                cpuname =  (trim(item.name))\r\n                WriteTable \"中央处理器\",cpuname\r\n        Next\r\nEnd Function \r\n\r\nFunction MemoryWrite()\r\n                \'函数,写入内存信息\r\nmtotal        = 0\r\nnum         = 0\r\nmill         = 0\r\n        Set colMemory = objswbemservices.execquery(\"select * from win32_physicalmemory\",,48)\r\n        For Each objitem In colMemory\r\n                mill = objitem.capacity/1048576\r\n                WriteTable \"单根内存容量\",mill & \"M\"\r\n                mtotal = mtotal+mill\r\n                num = num + 1\r\n        Next\r\n        WriteTable \"总计内存\",num & \"条\" & \"一共\" & mtotal & \"M\"\r\nEnd Function \r\n\r\nFunction HarddiskWrite()\r\n                \'函数,写入硬盘信息\r\n        Set colDisk = objswbemservices.execquery(\"select * from win32_diskdrive\", , 48)\r\n        For Each objitem In colDisk\r\n                diskname= objitem.caption\r\n                disksize= fix(objitem.size/1073741824)\r\n                WriteTable \"硬盘\",diskname & \" 容量:\" & disksize & \"G\"\r\n        Next\r\nEnd Function \r\n\r\n\r\n\r\nFunction CdromWrite()\r\n                \'函数,写入CDROM信息\r\n        Set colCdrom = objswbemservices.execquery(\"select * from win32_cdromdrive where scsitargetid=0\")\r\n        For Each objitem In colCdrom\r\n                cdname = objitem.name\r\n                WriteTable \"光驱\",cdname\r\n        Next\r\nEnd Function\r\n\r\nFunction videoWrite()\r\n                \'函数,写入显示卡信息\r\n        Set colVideo = objswbemservices.execquery(\"select * from win32_videocontroller\", , 48)\r\n        For Each objitem in colVideo\r\n                videoname = (trim(objitem.caption) & (objitem.videomodedescription)) \r\n                WriteTable \"显示卡\",videoname\r\n        Next\r\nEnd Function \r\n\r\n\r\nFunction netcardWrite()\r\n                \'函数,查询网卡信息\r\n        Set colNetcards = objswbemservices.execquery(\"select * from win32_networkadapter\")\r\n                For Each objNetcard in colNetcards                        \r\n                If Not IsNull(objNetcard.NetConnectionID) Then\r\n                        NetCardName         =  objNetcard.productname\r\n                               WriteTable \"网卡名称\",NetCardName\r\n                 \r\n                        If objNetcard.NetConnectionStatus = 2 Then                         \r\n                        NetCardMac         =  objNetcard.macaddress\r\n                        WriteTable \"网卡Mac\",NetCardMac\r\n\r\n                        strQueryIp =\"select * from win32_networkadapterconfiguration\" &_\r\n                                         \" where IPEnabled = true\" &_\r\n                                         \" and macaddress = \'\" & objNetcard.macaddress & \"\'\"\r\n                        Set colNetcardCfgs = objswbemservices.execquery(strQueryIp) \r\n                        For Each objNetcardCfg in colNetcardCfgs                \r\n                                For Each CfgAdrress in objNetcardCfg.IPAddress\r\n                                        IpAdrress = CfgAdrress\r\n                                        WriteTable \"IP地址\",IpAdrress\r\n                                Next\r\n                        Next        \r\n\r\n                        Else\r\n\r\n                        NetCardMac = \"网卡被禁用或未连接。\"\r\n                        WriteTable \"网卡Mac\",NetCardMac\r\n                        IpAdrress = \"网卡被禁用或未连接。\"    \r\n                        WriteTable \"IP地址\",IpAdrress        \r\n                        \r\n                        End If\r\n                                \r\n                End if\r\n                        \r\n                Next\r\nEnd Function \r\n\r\nFunction softlist()\r\n                \'函数,写入软件信息\r\nSet StdOut = WScript.StdOut \r\nSet oReg=GetObject(\"winmgmts:{impersonationLevel=impersonate}!\\\\\" &_ \r\nstrComputer & \"\\root\\default:StdRegProv\") \r\n\r\nstrKeyPath = UNINSTALL_ROOT \r\n\r\noReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys \r\n\r\nFor Each strSubKey In arrSubKeys \r\n        If NotHotfix(strSubKey) Then                \r\n                SoftNameAndVersion = getProgNameAndVersion(oReg,strKeyPath & \"\\\" & strSubKey)\r\n                If SoftNameAndVersion<>\"0\" Then \r\n                WriteTable \"软件\",SoftNameAndVersion                \r\n                End If \r\n        End If\r\nNext                 \r\nEnd Function\r\n\r\nFunction NotHotfix(sSubKey)        \r\n        If Left(sSubkey,2) = \"KB\" And len(sSubkey) = 8 Then\r\n                NotHotfix = 0\r\n        Else NotHotfix = 1\r\n        End if\r\nEnd Function\r\n\r\nFunction getProgNameAndVersion(oReg,sKeyRoot)\r\nDim sKeyValuesAry, iKeyTypesAry, nCnt, sValue, sDisplayName, sDisplayVersion\r\noReg.EnumValues HKEY_LOCAL_MACHINE, sKeyRoot, sKeyValuesAry, iKeyTypesAry\r\n        If NOT IsArray(sKeyValuesAry) Then \r\n                getProgNameAndVersion = 0\r\n                Exit Function  \r\n        End If\r\n\r\n        For nCnt = 0 To UBound(sKeyValuesAry)\r\n                If InStr(1, sKeyValuesAry(nCnt), \"DisplayName\", vbTextCompare) Then\r\n                        If iKeyTypesAry(nCnt) = REG_SZ Then\r\n                                oReg.GetStringValue HKEY_LOCAL_MACHINE, sKeyRoot, sKeyValuesAry(nCnt), sValue\r\n                                If sValue<>\"\" Then \r\n                                        sDisplayName = sValue                                \r\n                                        sDisplayName = Replace(sDisplayName, \"[\", \"(\")\r\n                                        sDisplayName = Replace(sDisplayName, \"]\", \")\")\r\n                                End If\r\n                        End If\r\n                ElseIf InStr(1, sKeyValuesAry(nCnt), \"DisplayVersion\", vbTextCompare) Then\r\n                        If iKeyTypesAry(nCnt) = REG_SZ Then\r\n                                oReg.GetStringValue HKEY_LOCAL_MACHINE, sKeyRoot, sKeyValuesAry(nCnt), sValue\r\n                                If sValue<>\"\" Then sDisplayVersion = sValue\r\n                        End If\r\n                End If\r\n\r\n                If (sDisplayName<>\"\") AND (sDisplayVersion<>\"\") Then \r\n                        getProgNameAndVersion = sDisplayName & \" --版本号: \" & sDisplayVersion\r\n                        Exit Function\r\n                Else         getProgNameAndVersion = 0                        \r\n                End If\r\n        Next\r\n\r\n        If sDisplayName<>\"\" Then \r\n                getProgNameAndVersion = sDisplayName\r\n                Exit Function                                        \r\n        End If\r\nEnd Function\r\n\r\n\r\nFunction WriteTable(caption,value)\r\n                \'函数,将数据写入HTML单元格\r\nresultFile.Writeline \"<tr>\"\r\nresultFile.Writeline \"<td align=\"\"left\"\" width=\"\"30%\"\" height=\"\"25\"\" bgcolor=\"\"#ffffff\"\" scope=\"\"row\"\">&nbsp;&nbsp;\" & caption & \"</td>\"\r\nresultFile.Writeline \"<td bgcolor=\"\"#ffffff\"\">&nbsp;&nbsp;\" & value & \"</td>\"\r\nresultFile.Writeline \"</tr>\"\r\nEnd Function \r\n\r\nFunction HtmlWriteHead()\r\n                \'函数,写入THML文件头\r\nresultFile.Writeline \"<html>\" \r\nresultFile.Writeline \"<head>\" \r\nresultFile.Writeline \"<title>软硬件配置清单</title>\"\r\nresultFile.Writeline \"</head>\" \r\nresultFile.Writeline \"<body>\" \r\nEnd Function \r\n\r\n\r\nFunction HtmlWriteEnd()\r\n                \'函数,写入Html文件尾\r\nresultFile.Writeline \"</body>\" \r\nresultFile.Writeline \"</html>\" \r\nEnd Function \r\n\r\nFunction TableHead(pcname,str)\r\n                \'函数,写入Html表格结尾\r\nresultFile.Writeline \"<h3>\" & pcname & str & \" -- date:\"&now()&\"  </h3>\" & VbCrLf\r\nresultFile.Writeline \"<table width=\"\"90%\"\" border=\"\"0\"\" align=\"\"center\"\" cellpadding=\"\"0\"\" cellspacing=\"\"1\"\" bgcolor=\"\"#0000ff\"\">\" \r\nresultFile.Writeline \"<tr>\" \r\nresultFile.Writeline \"<th width=\"\"30%\"\" height=\"\"25\"\" bgcolor=\"\"#ffffff\"\" scope=\"\"col\"\">资产类型</th>\"\r\nresultFile.Writeline \"<th bgcolor=\"\"#ffffff\"\" scope=\"\"col\"\">查询结果值</th>\"\r\nresultFile.Writeline \"</tr>\" \r\nstrstyle = \"<th width=\"\"30%\"\" height=\"\"25\"\" bgcolor=\"\"#ffffff\"\" scope=\"\"row\"\">\"\r\nEnd Function \r\n\r\nFunction TableEnd()\r\n                \'函数,Html表格结尾\r\nresultFile.Writeline \"</table>\" \r\nEnd Function \r\n\r\n\r\n严重说明:此脚本并是我个人原创,请大家自觉。下载下来后保存为.vbs即可

论坛徽章:
0
2 [报告]
发表于 2010-12-06 21:56 |只看该作者
回复 yangjunfeng0604 的帖子\n\n好东西,下载喽!~

论坛徽章:
0
3 [报告]
发表于 2010-12-06 21:59 |只看该作者
回复 yangjunfeng0604 的帖子\n\n不知为什么,在我电脑上运行,提示错误!~???

论坛徽章:
0
4 [报告]
发表于 2010-12-04 18:34 |只看该作者
很好,很强大, thank you

论坛徽章:
11
CU十二周年纪念徽章
日期:2013-10-24 15:41:342015年辞旧岁徽章
日期:2015-03-03 16:54:15丑牛
日期:2015-01-14 10:36:40技术图书徽章
日期:2015-01-12 15:46:11白羊座
日期:2014-11-14 09:35:36狮子座
日期:2014-10-30 13:18:49巳蛇
日期:2014-10-11 12:52:08子鼠
日期:2014-09-28 14:11:06双鱼座
日期:2014-04-22 13:05:48午马
日期:2014-02-11 17:58:002015年迎新春徽章
日期:2015-03-04 09:55:28
5 [报告]
发表于 2010-11-25 15:07 |只看该作者
收藏,备用,多谢!

论坛徽章:
7
天蝎座
日期:2014-06-04 13:29:02子鼠
日期:2014-06-16 10:07:08IT运维版块每日发帖之星
日期:2015-06-06 22:20:002015亚冠之迪拜阿赫利
日期:2015-06-08 15:24:21IT运维版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之阿尔沙巴布
日期:2015-06-18 16:37:30IT运维版块每日发帖之星
日期:2015-08-06 06:20:00
6 [报告]
发表于 2010-11-25 15:09 |只看该作者
{:6_666:}进来支持哒

论坛徽章:
0
7 [报告]
发表于 2010-11-25 15:10 |只看该作者
回复 小尾巴鱼 的帖子\n\n应该给来一个置顶?

论坛徽章:
0
8 [报告]
发表于 2010-11-25 15:25 |只看该作者
{:6_688:}

论坛徽章:
0
9 [报告]
发表于 2010-11-25 17:20 |只看该作者
进来顶下{:6_690:}

论坛徽章:
0
10 [报告]
发表于 2010-11-25 18:58 |只看该作者
路过,帮顶.\r\n
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP