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 # 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) ![How USMT Dash works](images/USMT%20Dash%20Architecture.png)
## The Pages ## The Pages
| Page | What it's for | | Page | Address | What it's for |
|---|---| |---|---|---|
| **Tracked Devices** | Register devices under a *tag* (your name, a date batch, a department...). The worker only watches tagged devices. | | **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. |
| **My Workbench** | Personal stacks: paste the devices on your cart and see just those. Saved in your browser. | | **Tracked Devices** | `/tracked` | Register devices under a *tag* (your name, a date batch, a department...). The worker only watches tagged devices. |
| **USMT Status** | Every tracked migration, grouped by status, with ping, free space and USMT log lines. | | **My Workbench** | `/workbench` | Personal stacks: paste the devices on your cart and see just those. Saved in your browser. |
| **All Devices** | Compares source and destination software and lists *specialty* apps missing from the new device. | | **USMT Status** | `/status` | Every tracked migration, grouped by status, with ping, free space and USMT log lines. |
| **Custom View** | Build your own table: add, remove, resize, drag and filter any column. | | **All Devices** | `/devices` | Compares source and destination software and lists the *specialty* apps missing from the new device. |
| **Documentation** | This knowledge base. Articles named after an app are linked from that app in the software view. | | **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 Status
![Migration lifecycle](images/Migration%20Lifecycle.png) ![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 | | Not Associated | No computer association in ConfigMgr |
| Skipped | The device's tag has **Skip USMT** ticked (inventory only) | | 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 ## 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. - **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, - **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*, 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. *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 - **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 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. 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 reachable are kept with their timestamps, and shown for completed migrations and offline
devices instead of blanks. devices instead of blanks.
- **Excel-style filters** on every table: sort, search and tick values; list columns match - **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 *any*, *only* or *exactly* the ticked items. On software columns, *Documented* + *Only
whose apps all have a documentation article, and *Easiest first* sorts by how many apps ticked* shows devices whose apps all have a documentation article, and *Easiest first*
still lack one. sorts by how many apps still lack one.
- **Phones and tablets**: tables become cards with one *Filter & sort* button, and a floating - **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 *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. 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 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 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. after an app are linked from that app in the software view.
- **Business-hours scheduling**: the worker cycles every few minutes during working hours, - **Live, on a schedule**: the worker cycles every few minutes during business hours, sleeps
sleeps overnight, and makes a midnight "pitstop" for the daily software refresh. overnight, and makes a midnight "pitstop" for the daily software refresh. While a cycle
*Force Update* and *Force Full Refresh* skip the wait. The dashboard updates live while a cycle runs runs, the rows swept so far are published every few seconds, so the dashboard updates live;
(swept rows are published every few seconds), newly tracked devices are swept and newly tracked devices are swept and published first. *Force Update* and *Force Full
published first, the sync dialog shows how long each kind of device (SCCM association, Refresh* skip the wait, and the sync dialog shows how long each kind of device (SCCM
manual pair, completed snapshot...) took. 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\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) | | `Providers\Demo.ps1` | Simulated data source used by the demo (see below) |
| `Config\usmt-dash.psd1` | Every environment-specific setting | | `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\demo\demo.js` | Terminal panel, plus the demo-mode browser sandbox |
| `web\overview.js` | Overview page (issue counters, progress, locations, deployment calendar) | | `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\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\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 ### 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*`, missing. See `Demo\Blacklisted-Apps.txt` for the syntax (plain patterns, `Suite = a*, b*`,
`Rule: DEVICE* = app*`, `Combo: Label = 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 ### Adapting it to a different toolset
All infrastructure access goes through a provider. To support another platform (Intune, a 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 Documentation/ knowledge-base articles and images
web/ dashboard, terminal panel / demo sandbox, vendored libraries web/ dashboard, terminal panel / demo sandbox, vendored libraries
Dockerfile, docker/ container for the hosted demo 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 ## 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