'If something fails, move on
on error resume next
Set objExplorer = WScript.CreateObject("InternetExplorer.Application")
objExplorer.Navigate "about:blank Who Am I"
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Width=570
objExplorer.Height = 500
objExplorer.Left = 80
objExplorer.Top = 20
objExplorer.Document.Body.InnerHTML = headerstring
objExplorer.Visible = 1
Set WSHNetwork = WScript.CreateObject("WScript.Network")
strUserName = WSHNetwork.UserName
domainname = WSHNetwork.userDomain
Do While (objExplorer.Busy)
Wscript.Sleep 500
Loop
'Get the Computer's network name
Set objNet=CreateObject("wscript.Network")
objHost=objNet.ComputerName
'Get a connection to the WMI NetAdapteConfig object
Set NIC1 = GetObject("winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
'For Each of the NICs in the connection
For Each Nic in NIC1
'Get the Adapter Description
StrNIC = Nic.Description
'If IP is enabled on the NIC then let's find out about the NIC
IF Nic.IPEnabled THEN
lngCount=UBound(Nic.IPAddress)
StrIP = Nic.IPAddress(i)
If StrIP <> "" Then
headerstring = headerstring & "
" & " PC Details for " & strUsername & "" & "
" & " Your Computers Name is: " & "" & objHost & "
Your IP Address is: " & "" & StrIP
exit for
END IF
end if
next
'headerstring= headerstring & " IT Department - TroubleShooter
"
'msgbox domainname
headerstring = headerstring & "
Your Username is " & strUserName & " and you are logged on into the " & domainname & " domain.
"
Set UserObj = GetObject("WinNT://" & domainname & "/" & strUserName & ",User")
lastlogintime = UserObj.lastlogin
dtmBootup = UserObj.lastlogin
dtmLastBootupTime = cdate(dtmBootup)
'msgbox dtmBootup & " " & now
dtmLastBootupTimeonly = WMIDateStringTotime(dtmBootup)
dtmSystemUptime = DateDiff("h", dtmLastBootUpTime, Now)
uptime = formatnumber(dtmSystemUptime/24,0)
if uptime > 0 then
'headerstring = headerstring & "Last logon time : ( " & formatnumber(dtmSystemUptime/24,0) & " days ago) " & lastlogintime & " (estimated).
"
elseif uptime = 0 then
'headerstring = headerstring & "You logged in today at " & right(dtmLastBootupTime,8) & " (estimated).
"
else
'headerstring = headerstring & "System error trying to figure out last login time" & " (estimated).
"
end if
'Model Number and serial Number
syslocale=false
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=delegate}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer in colSettings
sysModel= objComputer.Model
next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=delegate}!\\" & strComputer & "\root\cimv2")
Set colBIOS = objWMIService.ExecQuery _
("Select * from Win32_BIOS")
For each objBIOS in colBIOS
sysSerialNo = objBIOS.SerialNumber
next
if sysModel = "Marlin" or sysSerialNo = "" or isnull(sysSerialNo) then
'can't get the serial number from the bios - try from the network comments (last resort)
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=delegate}!\\" & strComputer & "\root\cimv2")
Set Obj= GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
For Each x In Obj
descString = x.Description
commapos = instr(descstring,",")
if commapos <> 0 then
sysmodel = left(descString, commapos-1)
sysSerialNo = right(descString,commapos-1)
else
donotupdate = TRUE
end if
Next
end if
if donotupdate = False then
headerstring = headerstring & "
The PC Model type is " & sysmodel & ", Serial No. is " & sysSerialNo
end if
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOS in colOperatingSystems
dtmBootup = objOS.LastBootUpTime
dtmLastBootupTime = WMIDateStringToDate(dtmBootup)
dtmLastBootupTimeonly = WMIDateStringTotime(dtmBootup)
dtmSystemUptime = DateDiff("h", dtmLastBootUpTime, Now)
uptime = formatnumber(dtmSystemUptime/24,0)
if uptime > 0 and uptime < 10 then
headerstring = headerstring & "
This system has been running for " & formatnumber(dtmSystemUptime/24,0) & " days.
" & " It hasn't been rebooted since " & dtmLastBootupTime & "
"
elseif uptime >= 10 then
headerstring = headerstring & "
Please restart this PC it has been up for " & formatnumber(dtmSystemUptime/24,0) & " days!
" & " It hasn't been rebooted since " & dtmLastBootupTime
elseif uptime = 0 then
headerstring = headerstring & "
This system was powered on today at " & dtmLastBootupTimeonly
else
headerstring = headerstring & "
System error trying to figure out uptime"
end if
Next
syslocale=false
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer in colSettings
sysMemory= objComputer.TotalPhysicalMemory
next
headerstring = headerstring & "
There is " & formatnumber(sysMemory/1000000,0) & "MB of RAM installed,"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfOS_Memory",,48)
For Each objItem in colItems
headerstring = headerstring & " of this there is " & objItem.AvailableMBytes & "MB not in use (" & formatnumber(((objItem.AvailableMBytes*1000000/sysMemory)*100),0) & "% free)"
next
Const HARD_DISK = 3
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")
For Each objDisk in colDisks
DiskSize = objDisk.Size
FreeDiskSpace = objDisk.FreeSpace
Next
headerstring = headerstring & "
There is a " & formatnumber(DiskSize/1000000000,0) & "GB HardDisk installed and there is " & formatnumber(FreeDiskSpace/1000000000,2) & "GB left on this disk (" & formatnumber((FreeDiskSpace/DiskSize)*100,0) & "% Freespace)"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)
For Each objItem in colItems
headerstring = headerstring & "
The CPU runs at " & objItem.MaxClockSpeed & "Mhz." 'It is currently at a " & objItem.LoadPercentage & "% load."
Next
objExplorer.Document.Body.InnerHTML = headerstring
objExplorer.Visible = 1
Function WMIDateStringToDate(dtmBootup)
WMIDateStringToDate = CDate(Mid(dtmBootup, 7, 2) & "/" & _
Mid(dtmBootup, 5, 2) & "/" & Left(dtmBootup, 4) _
& " " & Mid (dtmBootup, 9, 2) & ":" & _
Mid(dtmBootup, 11, 2) & ":" & Mid(dtmBootup, _
13, 2))
End Function
Function WMIDateStringToTime(dtmBootup)
if mid(right(dtmBootup,4),1,1) = "+" then
WMIDateStringToTime = CDate(Mid (dtmBootup, 9, 2) & ":" & _
Mid(dtmBootup, 11, 2) & ":" & Mid(dtmBootup, _
13, 2))
else
WMIDateStringToTime = CDate(Mid(dtmBootup, 12, 2) & ":" & _
Mid(dtmBootup, 15, 2) & ":" & Mid(dtmBootup, _
18, 2))
end if
End Function