您的位置:首页 > 编程语言 > VB

VBS 获取指定电脑的部分信息...

2010-03-18 09:06 393 查看
Program Name: Get_Remote_PC_Partial_Information.vbs
----The Code as Below
'--------------------------
'Author By: Wei_Zhu
'Creation Date: 2010-03-08
'--------------------------

On Error Resume Next
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook=objExcel.Workbooks.Add() 'This is add new
Set objRange = objExcel.Range("A1","E1")
objRange.Font.Size = 10
objrange.Font.Bold = True
objrange.Font.Name = "Times New Roman"
objrange.Cells(1).Value="Domain"
objrange.Cells(2).Value="IP"
objrange.Cells(3).Value="Manufacturer"
objrange.Cells(4).Value="Model"
objrange.Cells(5).Value="Serial Number"
objrange.Interior.ColorIndex = 34 'Set BackColor
objRange.Borders.LineStyle = 1
Set objRange = objExcel.ActiveCell.EntireColumn

objRange.AutoFit()

'----Auto Fill The Column Width---
Set objcol = objExcel.Columns("A:E").EntireColumn
objcol.AutoFit

set ws=createobject("wscript.shell")
set fso=createobject("scripting.filesystemobject")
set folder=fso.getfolder(ws.CurrentDirectory&"/Computer")

Set fc = folder.Files
For Each f1 in fc
s = folder&"/" & f1.name
set ts = fso.OpenTextFile(s, ForReading)
lint_line =2
Do While Not ts.AtEndOfStream
l_ip = ts.ReadLine
GetPCInfo l_ip,f1.Name,lint_line
lint_line = lint_line +1
Loop
lint_line=0
ts.Close
Next

objExcel.DisplayAlerts = False 'Close the Alert
'objExcel.ActiveWorkBook.Saveas lstg_to_f,-4143
'msgbox lstg_to_f
objExcel.ActiveWorkBook.Saveas folder&".xls",-4143
objExcel.DisplayAlerts = False ''Close the Save Alert
objExcel.ActiveWorkbook.Close
objExcel.DisplayAlerts = False
objExcel.Application.Quit


Function GetPCInfo(ByVal ip, ByVal l_fn, ByVal l_line)
'Function GetPCInfo(l_fn,l_line)
strComputer = ip
objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!//" & strComputer & "/root/cimv2")

colItems = objWMIService.ExecQuery("Select * from Win32_SystemEnclosure")

l_Array = Split(l_fn, ".", -1, 1)

For Each objItem In colItems
'MsgBox "Manufacturer: " & objItem.Manufacturer
' Msgbox "Product: " & objItem.Product
' Msgbox "Serial Number: " & objItem.SerialNumber

objRange = objExcel.Range("A" & l_line, "E" & l_line)
objRange.Cells(1).value = l_Array(0)
objRange.Cells(2).value = ip
objRange.Cells(3).value = objItem.Manufacturer
objRange.Cells(4).value = objItem.Model
objRange.Cells(5).value = objItem.SerialNumber
Next
'----Auto Fill The Column Width---
objcol = objExcel.Columns("A:E").EntireColumn
objcol.AutoFit()





'----Note----
The Win Server 2003 or high must class Win32_SystemEnclosure get Manufacturer information,...etc.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: