I’ve been using a freeware Sysinternals utility called BgInfo since 2006 – both at work and at home – to display system information on the Windows desktop.
The default configuration shows 24 fields of info that can be displayed:
At work it was invaluable for the helpdesk – all we had to do was ask a caller to read out the text on the bottom-right of their monitor where the computer name (asset no. really) and IP address were displayed. We could then remote into their computer immediately to save asking sometimes quite complicated questions which many users found difficulty answering.
At home I got into the habit of using BgInfo on my own devices and those of my family and friends, particularly if I provided remote support.
When the default info fields are not what you need, it’s possible to add custom fields of info:
Once configured how you want it, save the configuration as a .BGI file.
It’s probably easier if I provide an example of use…
I have a friend who’s going to be moving 130 miles away. Her Dell laptop’s 128GB SSD is down to about 60GB free space. She keeps other media (except for iTunes music and photos) on a microSD card in an SD adapter kept permanently in the laptop’s SD card reader. If she phones for support it’s likely I’ll need to check how much free space she has left on the SSD and microSD card.
This is when I found out (after all this time) a couple of BgInfo quirks: 1) it instantiates *every* network adapter, not just the active one; 2) its built-in Free Space field just doesn’t recognise microSD cards, only fixed and removable disks. As a result the initial display looked llike this:
To reduce the amount of screen estate used I removed the Host Name field as superfluous then replaced the built-in IP Address field with a custom field based on a VBS script that looks for a network adapter where IP is enabled, i.e. the active adapter:
strComputer = "." On Error Resume Next Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2") Set IPSettings = objWMIService.ExecQuery ("Select * FROM Win32_NetworkAdapterConfiguration where IPEnabled = 'True'") For Each objIPv4 in IPSettings For i=LBound(objIPv4.IPAddress) to UBound(objIPv4.IPAddress) If InStr(objIPv4.IPAddress(i),":") = 0 Then Echo objIPv4.IPAddress(i) Next Next
Next I created another very basic VBS script to query free space on the M: (for Media) drive, i.e. the microSD card, with some simple maths to convert the result to GB, rounded to 2 decimal places:
Set objWMIService = GetObject("winmgmts:") Set objLogicalDisk = objWMIService.Get ("Win32_LogicalDisk.DeviceID='M:'") Wscript.Echo "E: "& Round(objLogicalDisk.FreeSpace /1024/1024/1024, 2) & " GB exFAT"
The result was a much improved display:
I used another custom VBS script to read values from the registry to create the Build/Release field:
Set WshShell = CreateObject("WScript.Shell") x=WshShell.RegRead ("HKLMSOFTWAREMicrosoftWindows NTCurrentVersionCurrentBuild") y=WshShell.RegRead ("HKLMSOFTWAREMicrosoftWindows NTCurrentVersionUBR") Echo x&"."&y
Two more custom VBS scripts read the Start values of the DiagTrack service (aka ‘Telemetry’) and Windows Update services respectively (a value of 4 corresponds to ‘disabled’):
Telemetry:
Set objShell = CreateObject("WScript.Shell") strTemp = "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDiagTrackStart" x=objShell.RegRead(strTemp) If x = 4 then status = "Disabled" Else status = "Not Disabled" End If Echo status
Windows Update:
Set objShell = CreateObject("WScript.Shell") strTemp = "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceswuauservStart" x=objShell.RegRead(strTemp) If x = 4 then status = "Disabled" Else status = "Not Disabled" End If Echo status
I created a REG file to install a RUN entry to refresh the BgInfo data at every startup using the previously created .BGI config file:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun] "BgInfo"="C:\Support\BgInfo\Bginfo.exe C:\Support\BgInfo\Win10.bgi /timer:0 /silent"
Finally, I created a one-line BAT file to refresh the BgInfo details on demand and created a shortcut to it on her desktop:
Call C:SupportBgInfoBginfo.exe C:SupportBgInfoWin10.bgi /timer:0 /silent
Note that the latest version of BgInfo is 4.2.7 which – unfortunately – still doesn’t support PowerShell. If using Win 10 1903 then it’s important to use a BgInfo version other than 4.2.1 as this has a bug which misreports the OS edition.
The forum software keeps removing backslashes so I’ve attached a ZIP file with the scripts I’ve used here:
BGInfo-Win10
Hope this helps…