Repository navigation
UsaBanner 0.2.4
UsaBanner 0.2.4. What changed since v0.2.2 (2026-10-27): art of your own and the logo of each host's OS (!70),
and five fixes from the first production rollout (!71).
Art
Deploy-UsaBanner -ArtPath <art.json>, and the same flag onDeploy-UsaBannerGPO: a logo you cannot, do not or
will not contribute stays yours. Make the file from an image withNew-UsaBannerArt -OutFile, look at it with
Show-UsaBannerArt -Path, then deploy with-ArtPath. The art goes into the configuration's newart.custom,
which both banners draw in place ofart.name, and reaches every host the configuration does, through Group
Policy too; it never enters the module (docs/DECISIONS.md, D31).- Art of your own keeps the rules of the module's own (printable ASCII, 64 x 30 at most, a colour for every class),
checked wherever a configuration is built or read and again when it is drawn, and one more: no two colour
classes that differ only in case, since Windows reads the configuration at each login as PowerShell data. -BannerImage os-logodraws the logo of the OS each host runs: Windows, Ubuntu, or Tux on any other Linux. One
Group Policy package draws each host its own.os, the default, stays our server pictogram in the OS's colour.
The module's own files
- The manifest lists every file of the module (
FileList, D32).Deploy-UsaBannerGPOrefuses a module folder
that holds a file the list does not name, or lacks one it names, before anything is written: a publish had
staged an admin's configuration file, left in the folder of the unpacked release, to every host.
Deploy-UsaBannercopies the listed files alone into the copy for every user, with a warning naming any other,
and refuses a folder short of a listed file. Keep your configuration and your own art outside the module's
folder, and unpack each release fresh.
Group Policy
- A renamed GPO: the publisher finds its GPO by name (
-Name,UsaBannerby default), so a run without-Name
after an admin renamed it would have made a second GPO. It now stops and names the GPO that carries the task
UsaBanner sync, with the-Nameto give, and warns of any other GPO with the task beside its own.
Moving off the old banner (Ubuntu)
- The move-off stops a run of the old banner's jobs in progress, and clears the failed state of every unit of
those jobs once they are gone: none stays in systemctl's failed list, or in the "failed units" line at a login.
A host an earlier deploy moved off is cleared at its next deploy.
Windows
- The periodic task's program is
%ProgramFiles%\PowerShell\7\pwsh.exefrom any session: a deploy from a
PowerShell remoting session over SSH registered the task again, the same pwsh by its 8.3 path. A host that holds
the short form takes the long one once, at its next deploy. Remove-UsaBannerdeletes its task folder,\UsagiTools\, once no other task is in it.
Checked on a Windows Server 2025 lab member and an Ubuntu 24.04 lab host, every step predicted in writing
first, in two windows: the art (a logo made from a PNG, drawn in both banners as a login draws them, and os-logo)
and the five fixes (a missing module file refused, a stray one left out of the copy, the task's program, the task
folder, a failed old unit cleared); each host back to its state before. The suite on the build, the three test
folders: 2138, none skipped; negative controls, predicted before any run, 19 of 20 exact (the one miss named a
test too few, for the same cause).
The assets below are the archive and its SHA256SUMS, built from main by build/New-UsaBannerRelease.ps1;
sha256sum --check SHA256SUMS passes beside the archive.