Docs refresh: README, in-app user guide, screenshots

- README: configuration table, every web module, corrected filter and live
  update wording, Data/ file list.
- Using USMT Dash article rewritten as a user guide: pages and addresses,
  tracking, device details, filtering, phones and tablets, tips.
- Screenshots retaken from the current build.
This commit is contained in:
Johan Sandoval committed 2026-10-07 16:24:14 +00:00
1 parent 4cc810adf5
commit 18dc8961e2
9 files changed
+77 -24

No files matched your search

+39 -12
View File
@@ -3,19 +3,20 @@
# Using USMT Dash
USMT Dash tracks a Windows device-refresh project: which old (**source**) device is being replaced by which new (**destination**) device, and how far each migration has got.
USMT Dash tracks a Windows device-refresh project: which old (**source**) device is being replaced by which new (**destination**) device, and how far each migration has got. It updates by itself: while the worker is sweeping, new results appear every few seconds.
![How USMT Dash works](images/USMT%20Dash%20Architecture.png)
## The Pages
| Page | What it's for |
|---|---|
| **Tracked Devices** | Register devices under a *tag* (your name, a date batch, a department...). The worker only watches tagged devices. |
| **My Workbench** | Personal stacks: paste the devices on your cart and see just those. Saved in your browser. |
| **USMT Status** | Every tracked migration, grouped by status, with ping, free space and USMT log lines. |
| **All Devices** | Compares source and destination software and lists *specialty* apps missing from the new device. |
| **Custom View** | Build your own table: add, remove, resize, drag and filter any column. |
| **Documentation** | This knowledge base. Articles named after an app are linked from that app in the software view. |
| Page | Address | What it's for |
|---|---|---|
| **Overview** | `/` | The home page (click the logo to get back here). Counters for everything that still needs attention, overall progress, where the work is by building and floor, and a calendar of deployment dates. Click any number to list the devices behind it. |
| **Tracked Devices** | `/tracked` | Register devices under a *tag* (your name, a date batch, a department...). The worker only watches tagged devices. |
| **My Workbench** | `/workbench` | Personal stacks: paste the devices on your cart and see just those. Saved in your browser. |
| **USMT Status** | `/status` | Every tracked migration, grouped by status, with ping, free space and USMT log lines. |
| **All Devices** | `/devices` | Compares source and destination software and lists the *specialty* apps missing from the new device. |
| **Custom View** | `/custom` | Build your own table from any field: add, remove, resize, drag and filter columns. |
| **Documentation** | `/docs` | This knowledge base. Every article has its own link, e.g. `/docs/Zoom`. |
## Migration Status
![Migration lifecycle](images/Migration%20Lifecycle.png)
@@ -30,8 +31,34 @@ USMT Dash tracks a Windows device-refresh project: which old (**source**) device
| Not Associated | No computer association in ConfigMgr |
| Skipped | The device's tag has **Skip USMT** ticked (inventory only) |
## Tracking devices
- One device per line. Partial names work in the Workbench, not here: use full names.
- Pair devices manually with `SOURCE, DESTINATION` on one line when there's no ConfigMgr association. Changing the destination shows up straight away.
- Tick **Skip USMT** on a tag for devices you only want inventory and online status for.
- Newly added devices are swept first, so their data appears within a few seconds of the next cycle starting.
## Device details
Click any device to open its details. **Simple View** shows the migration; **Advanced View** adds both devices' inventory side by side.
- **Presence**: whether the device is online now, when it was last online, and how long it has been offline.
- **Found In**: whether AD, SCCM and DNS know the device. A blank field says why, for example *Not in SCCM* or *No DNS record*. *Waiting for worker...* means it hasn't been looked up yet.
- **Monitors**: how many are attached and their models.
- A small clock icon next to a value means it's a **snapshot**: the last reading taken while the device was reachable (hover for the time). Completed migrations and offline devices show these instead of blanks.
## Filtering and sorting
Every column header has a menu like Excel's: sort, search, and tick the values to show.
- On list columns (tags, software) choose **Any ticked** (at least one), **Only ticked** (nothing else) or **Exactly ticked** (precisely those).
- On software columns, **Documented** ticks every app that has an article. Add **Only ticked** to find the "easy" devices whose apps are all documented, or sort **Easiest first**.
- On space columns, sort by disk size or free space, or filter to devices with more or less than a set amount free.
- **Clear filters** in a table's header removes them all.
## On a phone or tablet
- Tables become cards. **Filter & sort** opens the same menus for any column.
- The round **Jump** button finds a device by name and scrolls to its card (without hiding anything), or jumps to a section, the top, the middle or the bottom of the page.
- In Custom View, **Card fields** picks what each card shows and in what order.
## Tips
- Pair devices manually with `SOURCE, DESTINATION` on one line when there's no ConfigMgr association.
- Click any device name for full details: location, users, hardware, AD groups.
- **Copy Location Info** builds a ready-to-paste table for facilities or asset tickets.
- In articles, `[[Copy:text]]` creates a click-to-copy link, and `[[Yellow:Label]]` adds a badge.
- The **Data Updated** button shows the worker's progress, when the next cycle runs, and how long each kind of device took last time. **Force Update** starts a cycle now.
- In articles, `[[Copy:text]]` creates a click-to-copy link, `[[Yellow:Label]]` adds a badge, and a quote starting with `[!NOTE]`, `[!TIP]` or `[!WARNING]` becomes a callout.
+38 -12
View File
@@ -51,7 +51,7 @@ a 1,300-device scope.
- **Device details**: AD OU and groups, hardware, disk, RAM, monitors, client health,
location, department, users, for both sides of a migration. A blank says why: *Not in AD*,
*Not in SCCM*, *No DNS record*, or *Waiting for worker...* if it hasn't been looked up yet.
The dialog refreshes in place when the worker finishes a cycle.
Open dialogs refresh in place as new data arrives.
- **Presence**: every ping is recorded, so each device shows when it was last online and how
many days it has been offline. Completed pairs and Skip USMT devices, which skip network checks
in the sweep, are pinged hourly during business hours and at midnight to keep theirs current.
@@ -59,9 +59,9 @@ a 1,300-device scope.
reachable are kept with their timestamps, and shown for completed migrations and offline
devices instead of blanks.
- **Excel-style filters** on every table: sort, search and tick values; list columns match
*any*, *only* or *exactly* the ticked items. On software columns, one click shows devices
whose apps all have a documentation article, and *Easiest first* sorts by how many apps
still lack one.
*any*, *only* or *exactly* the ticked items. On software columns, *Documented* + *Only
ticked* shows devices whose apps all have a documentation article, and *Easiest first*
sorts by how many apps still lack one.
- **Phones and tablets**: tables become cards with one *Filter & sort* button, and a floating
*Jump* button finds a device by name (scrolls to its card without filtering) or jumps to any
section, the top or the bottom of the page.
@@ -74,12 +74,14 @@ a 1,300-device scope.
is searchable, counted and split into *Applications* and *Troubleshooting & Guides*; PDF
export and print. Renaming an image rewrites every article that links to it. Articles named
after an app are linked from that app in the software view.
- **Business-hours scheduling**: the worker cycles every few minutes during working hours,
sleeps overnight, and makes a midnight "pitstop" for the daily software refresh.
*Force Update* and *Force Full Refresh* skip the wait. The dashboard updates live while a cycle runs
(swept rows are published every few seconds), newly tracked devices are swept and
published first, the sync dialog shows how long each kind of device (SCCM association,
manual pair, completed snapshot...) took.
- **Live, on a schedule**: the worker cycles every few minutes during business hours, sleeps
overnight, and makes a midnight "pitstop" for the daily software refresh. While a cycle
runs, the rows swept so far are published every few seconds, so the dashboard updates live;
newly tracked devices are swept and published first. *Force Update* and *Force Full
Refresh* skip the wait, and the sync dialog shows how long each kind of device (SCCM
association, manual pair, completed snapshot...) took.
- **Every page has an address** (`/status`, `/devices`, `/docs/Adobe Acrobat Pro`, ...), so
links, bookmarks and the back button work. The logo goes home to the Overview.
| | |
|---|---|
@@ -103,11 +105,15 @@ refresh" buttons drop flag files that the worker watches for.
| `Providers\SCCM.ps1` | Real data source: ConfigMgr module, site SQL database, ADSI, DNS/ICMP, admin shares |
| `Providers\Demo.ps1` | Simulated data source used by the demo (see below) |
| `Config\usmt-dash.psd1` | Every environment-specific setting |
| `web\index.html` | The dashboard (single-file HTML/JS, about 4,500 lines) |
| `web\index.html` | The dashboard (HTML/JS, about 4,600 lines) |
| `web\demo\demo.js` | Terminal panel, plus the demo-mode browser sandbox |
| `web\overview.js` | Overview page (issue counters, progress, locations, deployment calendar) |
| `web\device-info.js` | Shared device helpers: missing-data reasons, presence, snapshot markers |
| `web\excel-filter.js` | Excel-style sort / filter menus on every table; phone *Filter & sort* |
| `web\layout.js` / `layout.css` | Sticky headers, card view on phones and tablets, Custom View scrolling and column drag |
| `web\docs.js` | Knowledge base: permalinks, search, categories, PDF / print |
| `web\router.js` | Page addresses (`/status`, `/docs/...`) and back / forward |
| `web\jump.js` | Phones and tablets: jump to a device, a section, the top, middle or bottom |
### API
@@ -190,6 +196,24 @@ module), read access to the site database, AD read access, and admin-share acces
missing. See `Demo\Blacklisted-Apps.txt` for the syntax (plain patterns, `Suite = a*, b*`,
`Rule: DEVICE* = app*`, `Combo: Label = a* && b*`).
### Configuration
Everything lives in `Config\usmt-dash.psd1`; each setting is commented there. The ones you're
most likely to change:
| Setting | Default | What it does |
|---|---|---|
| `Worker.CycleSeconds` | `180` | Pause between cycles during business hours |
| `Worker.BusinessHours` | 07:30-17:30, Mon-Fri | When the worker cycles; outside it sleeps, with a midnight pitstop |
| `Worker.PresenceSweepMinutes` | `60` | How often completed and Skip USMT devices (which the sweep doesn't ping) are pinged |
| `Worker.LivePublishSeconds` | `10` | How often swept rows are published during a cycle |
| `Worker.SoftwareCacheHours` | `24` | How long a software inventory is reused |
| `Worker.DiskSkipList` | none | Devices whose admin share hangs; disk and log checks are skipped |
| `SCCM.AssetInventory` | `v_GS_ASSET_INFO0` | Optional custom inventory view for location, department, room type... |
| `SCCM.Monitors` | `v_GS_WMIMONITORID` | Attached monitors (needs WmiMonitorID in hardware inventory) |
| `Demo.BusinessHours` | 06:00-21:00, every day | When the demo worker runs |
| `Demo.DeviceCount` / `CycleSeconds` | `200` / `45` | Size of the simulated fleet and its cycle pause |
### Adapting it to a different toolset
All infrastructure access goes through a provider. To support another platform (Intune, a
@@ -225,7 +249,9 @@ Demo/ demo seed script + sample app blacklist
Documentation/ knowledge-base articles and images
web/ dashboard, terminal panel / demo sandbox, vendored libraries
Dockerfile, docker/ container for the hosted demo
Data/ runtime state (created on first run, not committed)
Data/ runtime state (created on first run, not committed): Data.json,
Worker-State.json, Advanced-Cache.json, Software-Cache.json,
Presence.json, Snapshots.json, Completed.json, Logs/
```
## Third-party code
Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 226 KiB