Deployment guide for IT admins
This guide is for the IT admin rolling out DeskTest.net across a fleet of front-desk workstations. Get the diagnostics working reliably on every machine so your tier-1 staff can use DeskTest.net as the first stop when a user reports "the scanner stopped working" or "the signature pad isn't responding." Done right, your tier-1 team triages most peripheral tickets from a copy-pasted report, without screen-sharing.
Why centralize on DeskTest.net
One URL your users land on. One set of diagnostics you have read the source of. Copy-paste reports that go straight into your ticket system. No per-workstation installation for most of the tools (the page runs in any modern browser). The two tools that depend on local services (Scanner Test and Signature Pad Test) only need the same vendor driver your line-of-business app already requires, so deploying DeskTest.net usually adds zero new agents to your image.
The deployment shape is the same at any scale: seed two config files, push managed bookmarks to all the tools, train tier-1 on the copy-report button.
Per-tool deployment matrix
Most of the site needs nothing on the workstation. Two tools (Scanner Test and Signature Pad Test) depend on local vendor services. Here is the full breakdown.
| Tool | Workstation requirement | Extra config |
|---|---|---|
| Full Workstation Checkup | None (browser only) | None |
| Connection Check | None (browser only) | Outbound egress to edge.desktest.net (Cloudflare Worker edge) only: reachability, a sustained ping soak, throwaway speed bytes, a cloud-app reachability check, and a clock check |
| Meeting Readiness | None (browser only) | Browser prompts for camera + microphone; latency and jitter to edge.desktest.net, the A/V checks are local |
| Front-Desk Station Check | None (browser only) | None (links out to each peripheral test; nothing leaves this page) |
| Phone Check | None (browser only) | A quick reachability check to edge.desktest.net; some sensors need a tap to enable on iOS; everything else is local |
| Display Check | None (browser only) | None (fully local; nothing leaves the tab; runs on any modern browser, including smart TV and game-console browsers) |
| Scanner Test | FIS WebScan installed | DeskTest.net in WebScan origin whitelist |
| Signature Pad Test | Topaz SigWeb installed | Firefox only: Topaz CA cert imported |
| PDF Test | None (browser only) | None |
| Printer Test | None (browser only) | None |
| SiteLink Test | None (browser only) | None |
| Microphone Test | None (browser only) | Browser must allow microphone permission (user prompt) |
| Recording Quality Check | None (browser only) | Needs a microphone (browser prompts); best on Chrome/Edge (Safari forces noise processing on); fully local, audio never leaves the tab |
| Webcam Test | None (browser only) | Browser must allow camera permission (user prompt) |
| Camera Quality Check | None (browser only) | Browser prompts for camera; delivered frame rate is exact on Chrome/Edge/Safari, estimated on Firefox |
| Speaker Test | None (browser only) | None |
| Echo and Latency Test | None (browser only) | Browser prompts for microphone (Web Audio); fully local, makes no network request |
| Keyboard Test | None (browser only) | None |
| Keyboard Layout Test | None (browser only) | Chrome/Edge read the layout exactly; other browsers use an interactive fallback |
| Display Test | None (browser only) | None |
| Refresh Rate Test | None (browser only) | None (fully local; keep the tab in front while it measures) |
| Accessibility and Zoom Check | None (browser only) | None (a few queries are Chromium-only and shown as "not detectable") |
| Browser Test | None (browser only) | None |
| Cache and Update Test | None (browser only) | None (reads service workers and cache storage locally; read-only, makes no network request) |
| Browser and OS Currency Check | None (browser only) | None (fully local; exact version on Chrome/Edge, user-agent fallback on other browsers) |
| Security Key Test | Any modern browser with WebAuthn | None |
| System Info | None (browser only) | None |
| Font Presence Check | None (browser only) | Exact installed-font list is a Chromium opt-in; other browsers probe for known fonts |
| Web App Readiness Test | None (browser only) | None |
| Notification Test | None (browser only) | Browser prompts to allow notifications; fully local, makes no network request |
| Clipboard Test | None (browser only) | Clipboard read is a Chromium opt-in; other browsers use a paste fallback. Pasted content never leaves the tab |
| Performance Test | None (browser only) | None |
| Screen Share Test | None (browser only) | Browser prompts the user to pick a screen or window to share |
| Kiosk Readiness Check | Chromium-based browser (Chrome/Edge) for full lockdown | Wake lock, keyboard lock, and idle detection are Chromium-only and degrade honestly elsewhere; fully local, makes no network request |
| Barcode Scanner Test | None (browser only) | Optional camera scan prompts for camera |
| Card Reader Test | None (browser only) | Keyboard-wedge capture; card data is masked and never leaves the tab (no network request) |
| NFC Tag Test | Android phone/tablet with Chrome | Web NFC is Android Chrome only; desktop and iOS show "open on Android". Fully local, tag content stays on the device (no network request) |
| Touchscreen Test | None (browser only) | None |
| Pen and Stylus Test | None (browser only) | None (fully local; uses Pointer Events) |
| Call Readiness Test | None (browser only) | Browser prompts for camera + microphone |
| Device Selection Check | None (browser only) | Browser prompts for camera + microphone |
| Network Test | None (browser only) | Outbound egress to documented public CDNs (Cloudflare, Google, Microsoft) and DNS-over-HTTPS endpoints |
| Speed Test | None (browser only) | Outbound download and upload to edge.desktest.net (Cloudflare Worker edge); random filler is generated and discarded, never your files |
| Connection Stability Test | None (browser only) | Outbound WebSocket to edge.desktest.net (Cloudflare Worker edge) |
| USB Device Test | Chromium-based browser (Chrome/Edge) | WebUSB/WebHID require Chromium; Firefox and Safari will report "limited" |
| Bluetooth Test | Chrome or Edge | Web Bluetooth requires Chrome or Edge (desktop or Android); Firefox and Safari show "not supported". Fully local, makes no network request |
| Serial Peripheral Test | Chromium-based browser (Chrome/Edge) on desktop | Web Serial requires Chromium; other browsers show "not supported". Fully local, makes no network request |
| Mouse Test | None (browser only) | None |
| Controller Test | None (browser only) | None (Gamepad API; fully local, makes no network request) |
| MIDI Test | Chrome or Edge | Web MIDI requires Chrome or Edge; Firefox and Safari show "not supported". Fully local, makes no network request |
| WebRTC Test | None (browser only) | Outbound UDP to STUN servers (stun.l.google.com:19302, stun.cloudflare.com:3478) |
| Proxy Test | None (browser only) | Outbound egress to edge.desktest.net (Cloudflare Worker edge reflector) |
| Clock Test | None (browser only) | Outbound egress to edge.desktest.net for a trusted time reference |
| SaaS Reachability Test | None (browser only) | Outbound egress to edge.desktest.net and the SaaS endpoints being checked (Microsoft 365, and similar) |
| Email Header Check | None (browser only) | None (parses pasted headers locally; makes no network request) |
| Certificate Check | None (browser only) | None (parses the pasted certificate locally; makes no network request) |
| File Hash Check | None (browser only) | None (hashes in the browser via Web Crypto; makes no network request) |
If your fleet does not use check scanners, ignore the FIS section below. If you do not use Topaz signature pads, skip the SigWeb section. The remaining fifty-five tools run in any modern Chrome, Edge, or Firefox, with the exceptions the matrix above lists: the USB Device Test, Serial Peripheral Test, Bluetooth Test, and MIDI Test need a Chromium browser (Chrome or Edge), the NFC Tag Test needs Android Chrome, and the Kiosk Readiness Check needs Chromium for full lockdown.
FIS WebScan whitelist (most important)
This is the single most common blocker for Scanner Test after a rollout. FIS WebScan validates the calling page's Origin header against a configured whitelist stored in %ProgramData%\FIS\WebScan\config\domain.xml. If the origin is not on the list, WebScan rejects the SignalR negotiate with HTTP 403 and the Scanner Test reports a whitelist failure. The page does correctly diagnose this, but you do not want every user adding the domain by hand.
Pre-seed the whitelist at install time by placing a WebScanCapture_Setup.xml file next to the WebScan MSI before running it. The installer reads this file and writes the configured origins into domain.xml on first launch. Use the same base name as the MSI so the installer picks it up.
<root>
<CheckUpdate>Y</CheckUpdate>
<UpdateURL>https://your-fis-update-server/webscan</UpdateURL>
<IsQuiet>Y</IsQuiet>
<OriginDomains>
<domain>https://desktest.net</domain>
<domain>https://your-rdc-domain.example.com</domain>
</OriginDomains>
</root>
Distribute the MSI plus the seed XML together via SCCM, Intune Win32 app, or a GPO software-install package. The IsQuiet flag suppresses installer dialogs. Add any other origins your remote deposit capture portal lives on while you are at it; the whitelist is additive.
For workstations that are already deployed, the per-workstation fallback is fine: right-click the blue WS tray icon, choose Settings, then Origin Domain Settings, click Add Domain, enter https://desktest.net, click Update, and accept the prompt to restart WebScan. If a single user reports a whitelist failure, that is the 30 second fix. If a dozen do, push the XML.
Topaz SigWeb (simpler, no whitelist)
SigWeb does not have an origin whitelist. Any HTTPS page on the workstation can talk to the local SigWeb service at 127.0.0.1:47290 (the HTTPS port; SigWeb also binds 47289 for plain HTTP). Deployment is just the MSI.
Run the SigWeb MSI silently as part of your image build: msiexec /i SigWeb.msi /qn. Plug the pad in. Done. The first time the user opens Signature Pad Test, the tool will confirm the service is reachable and capture a test signature.
One Firefox-specific wrinkle: SigWeb signs its localhost certificate with the Topaz CA, which Chrome, Edge, and IE pick up from the Windows trust store automatically. Firefox uses its own trust store and will not see it. On Firefox-only fleets, import C:\Program Files (x86)\Topaz\Tablet\TopazCA.cer into the user's Firefox Authorities store. There is no clean GPO automation for the Firefox cert store, so the common approach is the Firefox Enterprise Policy Certificates.Install directive in policies.json, or a one-time deploy script that calls certutil against the user's Firefox profile. If your front-desk staff are all on Chrome or Edge, skip this entirely.
Pushing bookmarks and shortcuts
Make DeskTest.net findable. The cleanest method on managed Windows is Chrome and Edge managed bookmark policy, set via Group Policy or directly in the registry under HKLM\Software\Policies\Google\Chrome\ManagedBookmarks (Chrome) and HKLM\Software\Policies\Microsoft\Edge\ManagedBookmarks (Edge). The value is a single JSON string listing each tool URL.
[
{"name": "desktest.net (Diagnostics)", "children": [
{"name": "Full Workstation Checkup", "url": "https://desktest.net/checkup/"},
{"name": "Connection Check", "url": "https://desktest.net/connection-check/"},
{"name": "Meeting Readiness", "url": "https://desktest.net/meeting-check/"},
{"name": "Front-Desk Station Check", "url": "https://desktest.net/station-check/"},
{"name": "Phone Check", "url": "https://desktest.net/phone-check/"},
{"name": "Display Check", "url": "https://desktest.net/display-check/"},
{"name": "Scanner Test", "url": "https://desktest.net/scanner-test/"},
{"name": "Signature Pad Test", "url": "https://desktest.net/sigpad-test/"},
{"name": "PDF Test", "url": "https://desktest.net/pdf-test/"},
{"name": "Printer Test", "url": "https://desktest.net/printer-test/"},
{"name": "SiteLink Test", "url": "https://desktest.net/sitelink-test/"},
{"name": "Microphone Test", "url": "https://desktest.net/mic-test/"},
{"name": "Recording Quality Check", "url": "https://desktest.net/recording-check/"},
{"name": "Webcam Test", "url": "https://desktest.net/webcam-test/"},
{"name": "Camera Quality Check", "url": "https://desktest.net/camera-quality/"},
{"name": "Speaker Test", "url": "https://desktest.net/speaker-test/"},
{"name": "Echo and Latency Test", "url": "https://desktest.net/echo-test/"},
{"name": "Keyboard Test", "url": "https://desktest.net/keyboard-test/"},
{"name": "Keyboard Layout Test", "url": "https://desktest.net/keylayout-test/"},
{"name": "Display Test", "url": "https://desktest.net/display-test/"},
{"name": "Refresh Rate Test", "url": "https://desktest.net/refresh-rate/"},
{"name": "Accessibility and Zoom Check", "url": "https://desktest.net/access-check/"},
{"name": "Browser Test", "url": "https://desktest.net/browser-test/"},
{"name": "Cache and Update Test", "url": "https://desktest.net/cache-test/"},
{"name": "Browser and OS Currency Check", "url": "https://desktest.net/currency-test/"},
{"name": "Security Key Test", "url": "https://desktest.net/security-key-test/"},
{"name": "System Info", "url": "https://desktest.net/system-info/"},
{"name": "Font Presence Check", "url": "https://desktest.net/font-check/"},
{"name": "Web App Readiness Test", "url": "https://desktest.net/webapp-test/"},
{"name": "Notification Test", "url": "https://desktest.net/notification-test/"},
{"name": "Clipboard Test", "url": "https://desktest.net/clipboard-test/"},
{"name": "Performance Test", "url": "https://desktest.net/perf-test/"},
{"name": "Screen Share Test", "url": "https://desktest.net/screenshare-test/"},
{"name": "Kiosk Readiness Check", "url": "https://desktest.net/kiosk-test/"},
{"name": "Barcode Scanner Test", "url": "https://desktest.net/barcode-test/"},
{"name": "Card Reader Test", "url": "https://desktest.net/card-reader-test/"},
{"name": "NFC Tag Test", "url": "https://desktest.net/nfc-test/"},
{"name": "Touchscreen Test", "url": "https://desktest.net/touch-test/"},
{"name": "Pen and Stylus Test", "url": "https://desktest.net/pen-test/"},
{"name": "Call Readiness Test", "url": "https://desktest.net/call-test/"},
{"name": "Device Selection Check", "url": "https://desktest.net/device-sanity/"},
{"name": "Network Test", "url": "https://desktest.net/network-test/"},
{"name": "Speed Test", "url": "https://desktest.net/speed-test/"},
{"name": "Connection Stability Test", "url": "https://desktest.net/socket-stability-test/"},
{"name": "USB Device Test", "url": "https://desktest.net/usb-test/"},
{"name": "Bluetooth Test", "url": "https://desktest.net/bluetooth-test/"},
{"name": "Serial Peripheral Test", "url": "https://desktest.net/serial-test/"},
{"name": "Mouse Test", "url": "https://desktest.net/mouse-test/"},
{"name": "Controller Test", "url": "https://desktest.net/controller-test/"},
{"name": "MIDI Test", "url": "https://desktest.net/midi-test/"},
{"name": "WebRTC Test", "url": "https://desktest.net/webrtc-test/"},
{"name": "Proxy Test", "url": "https://desktest.net/proxy-test/"},
{"name": "Clock Test", "url": "https://desktest.net/clock-test/"},
{"name": "SaaS Reachability Test", "url": "https://desktest.net/saas-test/"},
{"name": "Certificate Check", "url": "https://desktest.net/cert-check/"},
{"name": "Email Header Check", "url": "https://desktest.net/email-check/"},
{"name": "File Hash Check", "url": "https://desktest.net/hash-check/"}
]}
]
For Firefox, use the Enterprise Policy JSON (policies.json) Bookmarks array, or an autoconfig.js shipped with the install. For Edge or Internet Explorer Favorites on older Windows images, use Group Policy Preferences (User Configuration, Preferences, Windows Settings, Internet Settings, Favorites). Whatever you pick, the goal is that a front-desk user can open their browser's bookmark bar and click the tool name without typing. Many shops push a single bookmark to the hub https://desktest.net/ and let users pick the tool from the homepage; either approach works.
White-label the link (your org name + help-desk email)
Every tool - and especially the Full Workstation Checkup - accepts two optional, read-only query parameters so you can hand staff a link stamped with your organization that routes results to your queue:
?org=Your Companyshows a small banner naming your organization ("Diagnostics for Your Company" on the individual tools, "Workstation checkup for Your Company" on the Checkup).[email protected]becomes the recipient of the "Send to your IT" button, so a user's report goes straight to your help desk; the banner also shows that address so staff can see exactly where their report goes. If the value is not an email (for example a ticketing URL), it is appended to the report body instead.
Combine them and URL-encode spaces. The managed bookmark you push might be:
https://desktest.net/checkup/?org=Acme%20Property&[email protected]
The parameters never leave the browser, and with neither present every tool behaves exactly as it does on the public site.
Pre-rollout smoke test
Before pushing to the fleet, validate on one reference workstation that has the same image and the same peripheral models. Plan on 20 minutes.
- Install FIS WebScan with the seeded
WebScanCapture_Setup.xmlnext to the MSI. - Install Topaz SigWeb with
msiexec /i SigWeb.msi /qn. - Plug in a check scanner and a signature pad.
- Apply your bookmark policy and reboot.
- Open
https://desktest.net/. Confirm all the tool tiles render. - Run Scanner Test, feed a check, confirm PASS with MICR decoded.
- Run Signature Pad Test, sign on the pad, confirm PASS.
- Run PDF Test, Printer Test, and SiteLink Test. Confirm each produces a reasonable result for your environment.
- Run the browser-only peripheral tools you actually care about (Microphone, Webcam, Speaker, Keyboard, Display, Mouse) on at least one machine to validate the standard image. Most of these need user gestures or visual confirmation, so this is a per-image check rather than per-workstation.
- If you support video calling at the front desk, run WebRTC Test from inside the corporate network to confirm STUN reachability (UDP 3478/19302 outbound). If you support self-storage SiteLink, run SiteLink Test from a typical user account.
If Scanner Test passes here, your seed XML is correct and the rest of the fleet will work. If it reports a whitelist failure on the reference machine, fix the XML before going further.
Tier-1 support workflow
The point of all this is that a user reporting "my scanner stopped working" never needs a screen-share. The workflow your tier-1 staff should follow:
- Send the user the direct link to the relevant tool (Scanner Test for check scanners, Signature Pad Test for signature pads, and so on).
- Ask them to click Run.
- When the verdict appears, ask them to click Copy Diagnostic Report and paste the result into the ticket.
The report includes the workstation OS, the exact browser version, every check that ran with pass or fail, the diagnosed cause, the recommended next step, and the raw driver response where applicable. Tier-1 can triage most tickets from the report text alone; the ones that cannot (a genuine hardware failure or a weird vendor bug) get escalated with the report attached, which saves tier-2 the same investigation step.
Troubleshooting common false negatives
Scanner Test reports whitelist failure on machines you thought were seeded. Confirm the XML actually got distributed: on a target workstation, open %ProgramData%\FIS\WebScan\config\domain.xml and look for https://desktest.net in the origin list. If it is missing, your install package did not pick up the seed file. Check the MSI base name matched the XML base name and re-run the install.
Signature Pad Test passes in Chrome and Edge but fails reach in Firefox. The Topaz CA cert was not imported into Firefox's trust store. Either import it on the affected profile, push it via Firefox Enterprise Policy, or move the user to Chrome or Edge.
SiteLink Test fails the passive ping but staff confirm SiteLink Web Edition works fine in the browser. Expected. The passive ping is a no-cors request and is intentionally lenient (it cannot read the response body for privacy reasons). Trust the visual confirmation step.
Scanner Test reaches WebScan but the WebSocket fails on Edge UWP. Loopback isolation. Run CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe" in an admin command prompt. This is rare on modern Edge (Chromium) but still hits the old UWP build.
Related
- Scanner Test guide - what each check verifies and how to read the verdict.
- Signature Pad Test guide - the same, for SigWeb.
- About DeskTest.net - what this site is and the three rules every page follows.
- DeskTest.net - the tool hub.