Update: How to get the Service Tag from your server using VB scripting

Filed Under (Windows Networking) by Just An Admin on 06-02-2009

This script was originally posted on the forum on http://www.adminscripteditor.com, but was brought to my attention as the better alternative to my Service Tag retrieval script. And I must agree that this script does a much better job in acquiring information to debug problems or for use by your 1st level helpdesk to add to reported issues, besides getting just the service tag…

Place the code below in a VBS file, ie GetInfo.vbs and run it.

[cc width=”600″ lang=”vb”]

On Error Resume Next

do while strcomputer = “” and a < 2
strcomputer = Inputbox (“Please enter IP address or Computer name”,”Remote Computer Information Display”,”IP is preferred search method”)
strcomputer = trim(strcomputer)
a = a + 1
if not strComputer <> “” then
wscript.echo “No computer name entered, ending script”
end if

On Error Resume Next
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\CIMV2”)
if err.number <> 0 then
if err.number = -2147217405 then
wscript.echo “You do not have sufficient access rights to this computer”
wscript.echo “Could not locate computer” &vbcrlf& “Please check IP Address/Computer Name and try again”
end if
end if
Set colItems = objWMIService.ExecQuery(“SELECT * FROM Win32_BIOS”)
Set colItems1 = objWMIService.ExecQuery(“SELECT * FROM Win32_ComputerSystem”)
Set colItems2 = objWMIService.ExecQuery(“SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled = True”)
Set colitems3 = objWMIService.ExecQuery(“SELECT * FROM Win32_computersystem”)
Set colitems4 = objWMIService.ExecQuery(“SELECT * FROM Win32_NetworkLoginProfile”)
Set colitems5 = objWMIService.ExecQuery(“SELECT * FROM Win32_LogicalDisk Where DriveType = 3”)

Set objExplorer = CreateObject(“InternetExplorer.Application”)
objExplorer.Navigate “about:blank”
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Width = 800
objExplorer.Height = 600
objExplorer.Left = 100
objExplorer.Top = 100
objExplorer.Visible = 1

Do While (objExplorer.Busy)

Set objDocument = objExplorer.Document
objDocument.Writeln “<html><head><title>Computer Information</title></head>”
objDocument.Writeln “<body bgcolor=’white’>”

‘ Computer Detals

For Each objItem In colItems
serial = objitem.serialnumber
For Each objItem In colItems1
hostname = objitem.caption
make = objitem.manufacturer
model = objitem.model

objDocument.Writeln “<FONT color=’red’ size=4>Computer Information For: ” & Ucase(hostname) & “</FONT><BR><BR>”
objDocument.Writeln “<FONT face=’Courier’ color=’black’>Serial : ” & Serial & “</FONT><BR>”
objDocument.Writeln “<FONT face=’Courier’ color=’black’>Make : ” & make & “</FONT><BR>”
objDocument.Writeln “<FONT face=’Courier’ color=’black’>Model : ” & Model & “</FONT><BR>”

For Each objItem In colItems5
driveletter = objitem.name
capacity = ((objitem.size / 1024) / 1024) / 1024
free = ((objitem.FreeSpace / 1024) / 1024) / 1024
free = FormatNumber (free,2)
capacity = FormatNumber (capacity,2)

objDocument.Writeln “<FONT face=’Courier’ color=’black’>Capacity of ” &driveletter& ” – ” & capacity & “GB</FONT><BR>”
objDocument.Writeln “<FONT face=’Courier’ color=’black’>Free Space on ” &driveletter& ” – ” & Free & “GB</FONT><BR>”


objDocument.Writeln “<BR><FONT color=’Blue’ size=4>Please Wait, gathering more information…</FONT><BR><BR>”

‘ User Details

For Each objItem In colItems3
loggedon = objitem.username
For Each objItem In colItems4
cachedlog = objitem.name
username = objitem.FullName
passwordexpire = objitem.passwordexpires
badpassword = objitem.badpasswordcount
if loggedon = cachedlog then
objDocument.Writeln “<FONT color=’red’ size=4>User Information For…</FONT><BR>”
objDocument.Writeln “<FONT color=’red’ size=4>” & username & “</FONT><BR><BR>”
objDocument.Writeln “<FONT face=’Courier’ color=’black’> User Name :” & loggedon &”</FONT><BR>”
objDocument.Writeln “<FONT face=’courier’ color=’black’> Incorrect Password Attempts : ” & badpassword &”</FONT><BR>”
on error resume next
Set objaccount = GetObject(“WinNT://**********/” &objitem.caption & “,user”)
if Err.Number <> 0 Then
objDocument.Writeln “<FONT face=’courier’ color=’black’>unable to retrieve password expiration information</FONT><BR>”
If objAccount.PasswordExpired = 1 Then
objDocument.Writeln “<FONT face=’courier’ color=’red’>Password has Expired!</FONT><BR>”
objDocument.Writeln “<FONT face=’courier’ color=’black’>Password Expires ” & objAccount.PasswordExpirationDate & ” </FONT><BR><BR>”
end if
end if
end if

‘ Network Adapter Details

For Each objItem In colItems2
ipaddress = objitem.ipaddress(0)
description = objitem.description
DHCP = objitem.DHCPserver
Domain = objitem.DNSdomain
mac = objitem.MACaddress
DNS = objitem.dnsserversearchorder(0)
DNS1 = objitem.dnsserversearchorder(1)
DNS2 = objitem.dnsserversearchorder(2)
wins1 = objitem.winsprimaryserver
wins2 = objitem.winssecondaryserver

if not ipaddress = “” then
objDocument.Writeln “<FONT color=’red’ size=4>Network Adapter Details For…</FONT><BR>”
objDocument.Writeln “<FONT color=’red’ size=4>” & description & “</FONT><BR><BR>”
objDocument.Writeln “<FONT face=’Courier’ color=’black’> IP Address :” & ipaddress &”</FONT><BR>”
objDocument.Writeln “<FONT face=’courier’ color=’black’> DHCP Server : ” & DHCP &”</FONT><BR>”
objDocument.Writeln “<FONT face=’courier’ color=’black’> Domain Name : ” & domain &”</FONT><BR>”
objDocument.Writeln “<FONT face=’courier’ color=’black’> MAC Address : ” & mac &”</FONT><BR>”
objDocument.Writeln “<FONT face=’courier’ color=’black’> Primary DNS : ” & DNS &”</FONT><BR>”
objDocument.Writeln “<FONT face=’courier’ color=’black’> Secondary DNS : ” & DNS1 &”</FONT><BR>”
objDocument.Writeln “<FONT face=’courier’ color=’black’> Tertiary DNS : ” & DNS2 &”</FONT><BR>”
objDocument.Writeln “<FONT face=’courier’ color=’black’> Primary WINS : ” & wins1 &”</FONT><BR>”
objDocument.Writeln “<FONT face=’courier’ color=’black’> Secondary WINS : ” & WINS2 &”</FONT><BR><BR>”
end if

objDocument.Writeln “<FONT color=’Blue’ size=4>Script Finished</FONT><BR><BR>”


Incoming search terms:

How to get the Service Tag from your server using VB scripting

Filed Under (Windows Networking) by Just An Admin on 30-01-2009

When contacting your hardware vendor to report a problem or order additional hardware, like disks or memory, you are often asked to provide the Service Tag. Off course you have the service tags well documented in your CMDB repository. In case your CMDB is not so up to date or lacking any content at all, this little script will grab the tag from any system name or IP you enter, as long as your an admin or allowed to run WMI queries against the system.

Read the rest of this entry »