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

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

'==========================================================================

'

' 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判断操作系统

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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查询局域网内电脑的软件和硬件列表清单的文章就介绍到这了,更多相关查询软件和硬件列表清单内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

本文链接:https://my.lmcjl.com/post/15541.html

展开阅读全文

4 评论

留下您的评论.