PowerBGInfo is a PowerShell module that is used to generate background information for Windows machines. It's a replacement for BGInfo that doesn't require installation and is much more flexible.
You can read about this project on this blog post that tells a little backstory and shows few things.
Install from PowerShell Gallery is as easy as:
Install-Module PowerBGInfo -Force -Verbose
When there's an update you can update it using same command which will install new module version.
This module will work fine for PowerShell 5.1 and PowerShell 7+. Currently the module has a problem when running in VSCode PowerShell extension when on PowerShell 5.1 (other versions work fine!) It works fine when running in PowerShell 5.1 console, or ISE (shrug!).
Here's a small taste of the code:
New-BGInfo -MonitorIndex 0 {
# Lets add computer name, but lets use builtin values for that
New-BGInfoValue -BuiltinValue HostName -Color Red -FontSize 20 -FontFamilyName 'Calibri'
# Lets add user name, but lets use builtin values for that
New-BGInfoValue -BuiltinValue FullUserName -Name "FullUserName" -Color White
New-BGInfoValue -BuiltinValue CpuName
New-BGInfoValue -BuiltinValue CpuLogicalCores
New-BGInfoValue -BuiltinValue RAMSize
New-BGInfoValue -BuiltinValue RAMSpeed
# Lets add Label, but without any values, kind of like section starting
New-BGInfoLabel -Name "Drives" -Color LemonChiffon -FontSize 16 -FontFamilyName 'Calibri'
# Lets get all drives and their labels
foreach ($Disk in (Get-Disk)) {
$Volumes = $Disk | Get-Partition | Get-Volume
foreach ($V in $Volumes) {
New-BGInfoValue -Name "Drive $($V.DriveLetter)" -Value $V.SizeRemaining
}
}
} -FilePath $PSScriptRoot\Samples\PrzemyslawKlysAndKulkozaurr.jpg -ConfigurationDirectory $PSScriptRoot\Output -PositionX 100 -PositionY 100 -WallpaperFit Center
Here's how the wallpaper will look like:
You can also use only builtin values
New-BGInfo -MonitorIndex 0 {
# Lets add computer name, but lets use builtin values for that
New-BGInfoValue -BuiltinValue HostName -Color Red -FontSize 20 -FontFamilyName 'Calibri'
New-BGInfoValue -BuiltinValue FullUserName -Color White
New-BGInfoValue -BuiltinValue CpuName -Color White
New-BGInfoValue -BuiltinValue CpuLogicalCores -Color White -ValueColor Red
New-BGInfoValue -BuiltinValue RAMSize -Color White
New-BGInfoValue -BuiltinValue RAMSpeed -Color White -ValueColor ([SixLabors.ImageSharp.Color]::Aquamarine)
New-BGInfoValue -BuiltinValue RAMPartNumber -Color White
New-BGInfoValue -BuiltinValue BiosVersion -Color White
New-BGInfoValue -BuiltinValue BiosManufacturer -Color White
New-BGInfoValue -BuiltinValue BiosReleaseDate -Color White
New-BGInfoValue -BuiltinValue OSName -Color White -Name "Operating System"
New-BGInfoValue -BuiltinValue OSVersion -Color White
New-BGInfoValue -BuiltinValue OSArchitecture -Color White
New-BGInfoValue -BuiltinValue OSBuild -Color White
New-BGInfoValue -BuiltinValue OSInstallDate -Color White
New-BGInfoValue -BuiltinValue OSLastBootUpTime -Color White
} -FilePath "C:\Support\GitHub\PowerBGInfo\Examples\Samples\TapN-Evotec-1600x900.jpg" -ConfigurationDirectory $PSScriptRoot\Output -PositionX 75 -PositionY 75 -WallpaperFit Fit
Here's the output from command above