Remotely Retrieve PC Model & Serial Number

I have about 60 workstations on my network.  Is there a way to remotely retrieve the model and serial number of each PC?  While I am at it, and this is a stretch, can I also do the same for the monitor connected to the PC?

I found a VB script that retrieves just the serial number for the computer name that is entered but model would be helpful, and I also would have to enter one at a time.  Is there a tool that will scan a subnet and retrieve info on everything it finds?
LVL 1
DarrinZuroffAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

acl-puzzCommented:
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
mrroonieCommented:
angry ip scanner does mac address, IP address, computer name and hostname if that's any good for you. you need to configure the 'columns' to tell it to get all data - http://www.angryip.org/w/Home

its free as well
0
webbster20Commented:
Monitor -- No, unless you access msinfo32 and it has data on it via Device Manager.

A good thing to check into may be msinfo32.
0
The Ultimate Tool Kit for Technolgy Solution Provi

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy for valuable how-to assets including sample agreements, checklists, flowcharts, and more!

webbster20Commented:
I just ran a few tests here, I am awaiting final resolve to see which result works.

But, you can script msinfo32 to output a report to a destination of your choosing, if you like.

will report with confirmed findings.
0
webbster20Commented:
msinfo32 /report c:\nf1\test2.txt -- I ran this to have output go to that folder.

Hope this helps!
0
DarrinZuroffAuthor Commented:
I ended up finding a VB scripts that retrieves Make, Model, and serial number along with other various info.  I have to enter each workstation individually but it beats walking around to each machine.  I have partial credit because Spiceworks provides the info however there is a little overhead to get it to work properly.  I tried to configure however still have problems with the DCOM/WMI setup.  I have to have all the info I am looking for by Friday so I chose to use the script for now, however will spend more time with Spiceworks because it appears to be a great IT tool to monitor software & hardware on the network.  Following is the VB script I decided to use:

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)
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Desktops

From novice to tech pro — start learning today.