I’ve all the time appreciated the essential BGInfo concept: present the machine particulars the place the consumer or technician can see them instantly. The awkward half begins when the gadget has two displays, Home windows is rotating wallpapers, the help particulars come from a number of programs, and the completed background must be deployed by coverage.
PowerBGInfo is my PowerShell tackle that job. Model 2.x can construct desktop and logon backgrounds from a script or reusable JSON configuration. It controls placement and deployment, and it could actually embrace charts, topology, and different composed visuals when plain textual content is just not sufficient.
I primarily see it becoming these machines:
- shared admin workstations
- lab and classroom machines
- construct brokers and check hosts
- kiosks and coaching gadgets
- help desktops
- environments the place machine id should be seen at a look
Earlier than you begin
Use PowerShell 7 and set up the present public modules used for this text:
Set up-Module PowerBGInfo -Scope CurrentUser -Pressure
Import-Module PowerBGInfo
Run the examples from a folder the place you’ll be able to write the generated information, and exchange the pattern values with particulars that make sense in your surroundings.
Put the proper info on the display
Constructed-in values cowl the same old machine and consumer info: hostname, working system, CPU, reminiscence, BIOS, disks, community addresses, area, and consumer id. Customized values can come from PowerShell, CIM, the registry, Lively Listing, an API, or an RMM software.
It’s tempting to place every part on the wallpaper. I attempt to maintain it to the questions somebody asks in the course of the first minute of a help name:
- which machine and consumer am I taking a look at?
- which surroundings or function does it belong to?
- what’s the main IP tackle?
- what Home windows construct is working?
- the place ought to the consumer or technician ask for assist?
- is there one operational state that requires consideration?
Writer as soon as, deploy from JSON
Lengthy structure scripts are awkward to stick into scheduled duties, imaging steps, and RMM insurance policies. I favor to creator and preview the structure as soon as, export it to JSON, and let deployment run that reviewed configuration.
$configurationDirectory = (New-Merchandise -ItemType Listing -Path '.BGInfoPreview' -Pressure).FullName
$configPath = Be part of-Path $configurationDirectory 'workstation.json'
New-BGInfo {
New-BGInfoValue -BuiltinValue HostName -Identify 'Machine'
New-BGInfoValue -BuiltinValue FullUserName -Identify 'Consumer'
New-BGInfoValue -BuiltinValue OSName -Identify 'Working system'
New-BGInfoValue -Identify 'Help' -Worth 'helpdesk@contoso.com'
} -MonitorIndex 0 `
-Goal File `
-ConfigurationDirectory $configurationDirectory `
-OutputFileName 'workstation-preview.png' `
-JsonPath $configPath `
-ExportOnly
Invoke-BGInfo -Path $configPath
The JSON will be reviewed and versioned beside the deployment coverage. The scheduled job or RMM motion solely has to run a recognized configuration, which additionally makes later structure modifications a lot simpler to evaluate.
Preview earlier than altering a desktop
Whereas constructing a structure, I exploit -Goal File and an express output identify. Evaluating two information is far simpler than altering my desktop after each edit, and the preview will be hooked up to a pull request or change report.
As soon as the preview seems to be proper, select the deployment goal:
- present consumer for a standard sign-in or scheduled refresh
- all present customers and the default profile for a shared gadget
- logon display for system-level context
- each desktop and logon display when the identical coverage belongs in every place
All-users and logon-screen modifications require elevation. Take a look at them on the Home windows variations and administration baselines utilized by the fleet earlier than turning the configuration into coverage.
Multi-monitor placement and wallpaper habits
Info that matches a 1920×1080 main monitor could cowl the topic of an ultrawide wallpaper or seem on the fallacious display after docking. PowerBGInfo helps monitor choice, nook and middle anchors, offsets, and express placement, however I nonetheless preview the outcome on the resolutions folks really use.
Wallpaper slideshows want a call as nicely. PowerBGInfo can render each slideshow supply or exchange the slideshow with one static outcome. It additionally handles the Home windows wallpaper refresh path so the brand new file is proven as an alternative of an older cached copy.
Charts ought to reply a small operational query
PowerBGInfo 2.x can add ChartForgeX visuals to the wallpaper. I might not flip each desktop right into a monitoring dashboard, however one small chart can reply a helpful native query:
- CPU or reminiscence development on a lab host
- workspace disk utilization on a construct agent
- patch goal on an admin workstation
- train progress on a coaching machine
- service state on a help desktop
New-BGInfoChart `
-Id 'cpu-history' `
-Title 'CPU historical past' `
-Metric CpuPercent `
-Type Space `
-ValueSuffix '%' `
-Width 360 `
-Top 145 `
-MaxPoints 60 `
-Anchor BottomLeft `
-OffsetX 20 `
-OffsetY 20
Place the chart declaration contained in the New-BGInfo { ... } block above. CPU historical past accumulates because the background is refreshed, so the primary render is not going to include sixty historic samples. Go away sufficient house between overlays and examine the file preview on the goal decision.
Topology can present speedy context
A small topology overlay can present which companies belong to a lab, the path to an utility, or the homeowners of a shared machine. PowerBGInfo provides the nodes and edges; ChartForgeX handles the structure and drawing.
ChartForgeX owns the reusable charts, topology, and composition. PowerBGInfo owns the Home windows-specific work: values, placement, deployment targets, caching, and refresh. ImagePlayground exposes the broader picture tooling by PowerShell. Conserving these jobs separate means wallpaper habits doesn’t leak right into a basic rendering library.
What modified because the authentic PowerBGInfo article
The sooner PowerBGInfo introduction exhibits the place the challenge began. Since then I’ve added a richer worth mannequin, multi-monitor placement, JSON configuration, a number of deployment targets, slideshow dealing with, charts, topology, and visual-canvas layouts.
The unique concept has not modified. When somebody seems to be at a managed Home windows display, the primary items of help context ought to already be there.
Documentation, API, and examples
The PowerBGInfo challenge hub hyperlinks the present materials:
- documentation covers deployment, refresh, layouts, and troubleshooting
- PowerShell API lists the present instructions and parameter units
- examples hyperlink to maintained deployment, chart, topology, and visual-canvas workflows
- GitHub stays the supply and challenge tracker
My advice is to begin with file output, examine it on the monitor resolutions used within the fleet, and solely then apply it within the meant consumer or system context. The background could also be ornamental to Home windows, however as soon as it carries help info it turns into a part of the deployed configuration.


