VBS Script To Retrieve System Information From A Remote Machine And Send To Word

 

This VBS script will allow you to enter a remote machine name from an input dialog box and will retrieve system information for the specified machine.

 

The information captured will be the machines:  Manufacturer, Model, Domain Type, Total Physical Memory, Processor Manufacturer, Processor Name, Processor Clock Speed, Bios Version, Serial Number, Video Controller, CD-ROM Manufacturer, CD-ROM Name, KeyBoard and the Primary Drive Size

 

VBS Script:

 

strComputer = InputBox ("Enter Machine Name")

 

Const NUMBER_OF_ROWS = 15

Const NUMBER_OF_COLUMNS = 2

 

Set objWord = CreateObject("Word.Application")

objWord.Visible = True

Set objDoc = objWord.Documents.Add()

 

Set objRange = objDoc.Range()

objDoc.Tables.Add objRange, NUMBER_OF_ROWS, NUMBER_OF_COLUMNS

Set objTable = objDoc.Tables(1)

objTable.Cell(1,1).Range.Text = "System Information For: "

objTable.Cell(2,1).Range.Text = "Manufacturer"

objTable.Cell(3,1).Range.Text = "Model"

objTable.Cell(4,1).Range.Text = "Domain Type"

objTable.Cell(5,1).Range.Text = "Total Physical Memory"

objTable.Cell(6,1).Range.Text = "Processor Manufacturer"

objTable.Cell(7,1).Range.Text = "Processor Name"

objTable.Cell(8,1).Range.Text = "Processor Clock Speed"

objTable.Cell(9,1).Range.Text = "Bios Version"

objTable.Cell(10,1).Range.Text = "Serial Number"

objTable.Cell(11,1).Range.Text = "Video Controller"

objTable.Cell(12,1).Range.Text = "CD-ROM Manufacturer"

objTable.Cell(13,1).Range.Text = "CD-ROM Name"

objTable.Cell(14,1).Range.Text = "KeyBoard"

objTable.Cell(15,1).Range.Text = "Primary Drive Size"

 

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")

For Each objItem in colItems

objTable.Rows.Add()

objTable.Cell(1, 2).Range.Text = UCase(strComputer)

objTable.Cell(2, 2).Range.Text = objItem.Manufacturer

objTable.Cell(3, 2).Range.Text = objItem.Model

Select Case objItem.DomainRole

Case 0 strComputerRole = "Standalone Workstation"

Case 1 strComputerRole = "Member Workstation"

Case 2 strComputerRole = "Standalone Server"

Case 3 strComputerRole = "Member Server"

Case 4 strComputerRole = "Backup Domain Controller"

Case 5 strComputerRole = "Primary Domain Controller"

End Select

objTable.Cell(4, 2).Range.Text = strComputerRole

objTable.Cell(5, 2).Range.Text = objItem.TotalPhysicalMemory/1048576 & " MB"

Next

 

Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")

For Each objItem in colItems

objTable.Cell(6, 2).Range.Text = objItem.Manufacturer

objTable.Cell(7, 2).Range.Text = objItem.Name

objTable.Cell(8, 2).Range.Text = Round(objItem.MaxClockSpeed) & " MHz"

Next

 

Set colItems = objWMIService.ExecQuery("Select * from Win32_BIOS")

For Each objItem in colItems

objTable.Cell(9, 2).Range.Text = objItem.Version

objTable.Cell(10, 2).Range.Text = objItem.SerialNumber

Next

 

Set colItems = objWMIService.ExecQuery("Select * from Win32_VideoController")

For Each objItem in colItems

objTable.Cell(11, 2).Range.Text = objItem.Name

Next

 

Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive")

For Each objItem in colItems

objTable.Cell(12, 2).Range.Text = objItem.Manufacturer

objTable.Cell(13, 2).Range.Text = objItem.Name

Next

 

Set colItems = objWMIService.ExecQuery("Select * from Win32_Keyboard")

For Each objItem in colItems

objTable.Cell(14, 2).Range.Text = objItem.Caption

Next

 

Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DeviceID = ""C:""")

For Each objItem in colItems

objTable.Cell(15, 2).Range.Text = Round(objItem.Size /1073741824) & " GB"

 

Next

objTable.AutoFormat(23)

 

 

 

Published Sunday, December 30, 2007 1:58 PM by dhite
Filed under:

Comments

No Comments