Member_2_5508668
asked on
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?
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?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Monitor -- No, unless you access msinfo32 and it has data on it via Device Manager.
A good thing to check into may be msinfo32.
A good thing to check into may be msinfo32.
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.
But, you can script msinfo32 to output a report to a destination of your choosing, if you like.
will report with confirmed findings.
msinfo32 /report c:\nf1\test2.txt -- I ran this to have output go to that folder.
Hope this helps!
Hope this helps!
ASKER
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.Applica tion")
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.T ext = "System Information For: "
objTable.Cell(2,1).Range.T ext = "Manufacturer"
objTable.Cell(3,1).Range.T ext = "Model"
objTable.Cell(4,1).Range.T ext = "Domain Type"
objTable.Cell(5,1).Range.T ext = "Total Physical Memory"
objTable.Cell(6,1).Range.T ext = "Processor Manufacturer"
objTable.Cell(7,1).Range.T ext = "Processor Name"
objTable.Cell(8,1).Range.T ext = "Processor Clock Speed"
objTable.Cell(9,1).Range.T ext = "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("S elect * 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.TotalPhysicalMemor y/1048576 & " MB"
Next
Set colItems = objWMIService.ExecQuery("S elect * 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.MaxClockSpee d) & " MHz"
Next
Set colItems = objWMIService.ExecQuery("S elect * 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("S elect * from Win32_VideoController")
For Each objItem in colItems
objTable.Cell(11, 2).Range.Text = objItem.Name
Next
Set colItems = objWMIService.ExecQuery("S elect * 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("S elect * from Win32_Keyboard")
For Each objItem in colItems
objTable.Cell(14, 2).Range.Text = objItem.Caption
Next
Set colItems = objWMIService.ExecQuery("S elect * 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)
strComputer = InputBox ("Enter Machine Name")
Const NUMBER_OF_ROWS = 15
Const NUMBER_OF_COLUMNS = 2
Set objWord = CreateObject("Word.Applica
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.T
objTable.Cell(2,1).Range.T
objTable.Cell(3,1).Range.T
objTable.Cell(4,1).Range.T
objTable.Cell(5,1).Range.T
objTable.Cell(6,1).Range.T
objTable.Cell(7,1).Range.T
objTable.Cell(8,1).Range.T
objTable.Cell(9,1).Range.T
objTable.Cell(10,1).Range.
objTable.Cell(11,1).Range.
objTable.Cell(12,1).Range.
objTable.Cell(13,1).Range.
objTable.Cell(14,1).Range.
objTable.Cell(15,1).Range.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("S
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.TotalPhysicalMemor
Next
Set colItems = objWMIService.ExecQuery("S
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.MaxClockSpee
Next
Set colItems = objWMIService.ExecQuery("S
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("S
For Each objItem in colItems
objTable.Cell(11, 2).Range.Text = objItem.Name
Next
Set colItems = objWMIService.ExecQuery("S
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("S
For Each objItem in colItems
objTable.Cell(14, 2).Range.Text = objItem.Caption
Next
Set colItems = objWMIService.ExecQuery("S
For Each objItem in colItems
objTable.Cell(15, 2).Range.Text = Round(objItem.Size /1073741824) & " GB"
Next
objTable.AutoFormat(23)
its free as well