'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