The supported machine always runs the native Windows client — a web page cannot inject operating system mouse and keyboard input, so there is no browser-based client. What varies is whether that client is installed.
Portable executable — attended support
The user double-clicks it (or the join page hands them a launcher that passes the right relay, session and token). It runs inside that user's session, needs no administrator rights, and installs nothing. Closing it ends access. This is the lower-risk deployment and the right default for helpdesk work.
SecureDeskClient.exe --portable ^
--relay wss://support.example.com ^
--session my-code ^
--token <session token>The equivalent environment variables are RUBIX_RELAY, RUBIX_SESSION, RUBIX_TOKEN, plus RUBIX_FPS, RUBIX_QUALITY and RUBIX_NAME for tuning and labelling.
Elevating a portable session
A standard-user session cannot fix a service or a driver. The technician clicks Elevate…, enters an administrator account for that machine (DOMAIN\user, user@domain or a local account), and the client relaunches itself with those rights via a linked-token launch. It then reports the integrity level it actually obtained, so the console never claims an elevation that did not happen.
Those credentials belong to the customer's environment. They are used once on that machine, never persisted and never logged, and they never reach the portal. The browser console refuses to send them at all unless the session is end-to-end encrypted — verify the 6-digit code with the user first. Prefer short-lived, dedicated support-admin accounts, and log every escalation: who, when, which account, what the outcome was.
Elevation on the portable client is best-effort. True high-integrity elevation without a UAC prompt depends on UAC policy and on the admin account having interactive-desktop access. The installed service is the robust route to guaranteed full-OS rights.
Installed service — unattended access
Installed from an elevated PowerShell prompt, the client runs as LocalSystem from boot. It survives logon, lock and fast-user-switch, and gives the technician access before anyone has signed in.
# elevated PowerShell
.\install-service.ps1 -Relay wss://support.example.com `
-Session my-code `
-Token <token>
.\install-service.ps1 -UninstallIn normal use you do not hand-write session ids: the device enrolls with the portal and carries its own device token, appearing in the portal's per-customer device inventory. A technician with the devices.connect permission opens a session against it directly.
The Session 0 problem, and how it is handled
A Windows service runs in Session 0, isolated from the interactive desktop, so it cannot capture the screen or inject input from there. The service finds the active console session, duplicates that user's token, and spawns its capture worker inside the user's session on desktop winsta0\default — relaunching it across session changes.
Sign-in and lock screens
On the Windows sign-in desktop, GDI capture returns the composited login UI as solid black, while DXGI Desktop Duplication captures it correctly — but DXGI has to be created on a thread bound to the current input desktop, and it fails outright on some virtual display stacks. So the unattended worker runs both: GDI keeps frames flowing while DXGI is probed on the capture thread, and the moment DXGI yields a frame it switches to it permanently. If DXGI cannot initialize, you stay on GDI and the reason is recorded in diagnostics rather than showing up as an unexplained black screen.
The secure desktop is not captured. UAC consent prompts and Ctrl-Alt-Del run on a separate, protected desktop that requires the worker to attach to it explicitly — a documented next step, not a shipped feature. Backstage already works before login, because it needs no desktop at all.
Backstage — a SYSTEM shell with no desktop
The installed service also exposes a backstage session: cmd or PowerShell running as SYSTEM, with no interactive desktop. A technician can run privileged commands and move files without taking over or even disturbing the user's screen, and it works when nobody is logged in. The portable executable never starts one.
Backstage rides a derived session id. If the support code is S, desktop control uses S and backstage uses S-bs. The technician picks Desktop or Backstage in the console; the user only ever shares the one code.
Treat backstage as handing out a remote SYSTEM command prompt. It is the highest-privilege surface in the product and the most attractive to an attacker who gets a technician's credentials. Gate it behind MFA, authorize it per technician, and log every session and command.
What a session can do
| Capability | Detail |
|---|---|
| Screen and control | Mouse and keyboard, normalized 0–65535 so the technician's resolution is irrelevant. |
| Multi-monitor | Enumerated with thumbnail previews; the technician switches the captured monitor mid-session. |
| File transfer | Either direction, 64 KB chunks, SHA-256 of the whole file verified by the receiver before it acknowledges. |
| Clipboard | Two-way text sync, on request rather than continuously. |
| Voice call | 16 kHz mono PCM over the same encrypted channel, with optional webcam video from the technician. |
| Backstage shell | Installed service only. Raw stdout/stderr streamed back; typed input fed to stdin. |
The technician console
Two options, same capabilities including the backstage terminal: the browser console opened from the portal (or directly at /console), and a native Windows console for technicians who prefer an application. The native console links the client's protocol implementation directly, so the wire format cannot drift between the two.