Unattended Access
By default, a WebRTC screen-share session waits for the person at the machine to approve it before the technician sees the desktop. That is the right behavior for helping a signed-in user — but it doesn't work for servers, kiosks, or lab machines where nobody is sitting in front of the screen. Unattended access is a per-agent designation that lets an authorized technician connect to a specific machine without the on-screen consent prompt. You turn it on for the machines that need it, from the console, the REST API, or PowerShell.
Unattended access applies to WebRTC technician screen-share. It changes whether the consent prompt appears — it does not bypass authorization: starting a session still requires the Operator or Admin role, and every session is recorded in the audit trail.
Attended vs. unattended#
Every screen-share session is one of two kinds. The difference is decided by the target agent's unattended designation, which the server reads before the session starts:
| Attended (default) | Unattended | |
|---|---|---|
| On-screen consent prompt | Shown — the session waits in Waiting for approval until the person at the machine approves. | Skipped — the session goes straight from Connecting to Connected. |
| Best for | Assisting a signed-in end user at their desk. | Servers, kiosks, digital signage, lab and shared machines with no one at the console. |
| Authorization to start | Operator or Admin — the same for both. | |
| On-screen session indicator | Shown while a session is live — the same for both. | |
| Audit trail | Recorded as a normal (attended) session. | Recorded and flagged as unattended. |
An agent is attended unless you explicitly designate it for unattended access. If the server can't read the flag for any reason, it treats the session as attended — the safe, consent-required default.
Unattended is not the same as headless. Skipping the consent prompt does not let a technician capture a screen when nobody is signed in. Screen sharing needs an interactive desktop, so a machine with no logged-in user still can't be captured — the session ends with a “no interactive user” reason even when unattended is enabled. Someone must be signed in (locked is fine) for the desktop to be shareable.
Turning it on from the console#
Open the target machine from the fleet list and find the Allow unattended screen-share toggle on its details page (in the agent-info section). Switch it on to designate the machine for unattended access, or off to require an attended consent prompt again. The change takes effect immediately and applies to the next session — there is no restart and nothing to install.
The toggle is shown only when both of these are true:
- WebRTC screen-share is enabled server-side
(
RemoteSession:WebRtcEnabled, on by default). When screen-share is off, the toggle is hidden rather than shown as a dead control. - You are signed in as an Operator or Admin. Helpdesk and read-only users don't see it.
When you connect to a machine that has nobody signed in and isn't yet designated, the console offers a shortcut to designate it for unattended access on the spot, so you can set it up the first time you need it rather than hunting for the toggle.
What changes when it's on#
- No consent prompt. A session an Operator or Admin starts to the machine proceeds without waiting for anyone to click Approve. The browser overlay goes straight to Connected instead of pausing at Waiting for approval.
- Authorization is unchanged. Only Operators and Admins can start a session, unattended or not. The toggle removes the on-device approval step, not the server-side role check.
- The session indicator still appears. The on-screen indicator that a remote session is in progress is shown for unattended sessions too, so activity on the machine is never invisible to anyone who happens to be present.
- Audited as unattended. The session's audit record is flagged as unattended, so you can always tell consent-skipping sessions apart from attended ones in the trail.
- Per machine, not global. The designation is stored on the individual agent, so only the machines you designate skip the prompt. Every other agent stays attended.
Unattended access covers WebRTC screen-share only. It does not change how RustDesk access, remote command execution, or the remote file browser work.
REST API#
The same designation is available over the REST API, so you can enable
unattended access in bulk (for example across every server or kiosk) instead of clicking through
each machine. It requires the Operator or Admin role and returns
404 when the agent ID isn't found. On success it returns the updated agent, whose
allowUnattended field reflects the new value.
| Action | Endpoint | Role |
|---|---|---|
| Set an agent's unattended designation | POST api/agents/{id}/unattended | Operator / Admin |
The request body is a single boolean:
# Designate a machine for unattended access
POST /api/agents/550e8400-e29b-41d4-a716-446655440000/unattended
{ "allow": true }
# Require attended consent again
POST /api/agents/550e8400-e29b-41d4-a716-446655440000/unattended
{ "allow": false }
The response carries the updated agent, including its unattended flag:
{
"success": true,
"message": "Unattended remote access enabled",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"hostname": "kiosk-01",
"allowUnattended": true
}
}
PowerShell#
The Athena PowerShell module exposes the toggle as a single cmdlet
that accepts an agent from the pipeline, so you can designate one machine or fan the change across a
whole collection or tag in one line. It requires Operator or Admin and supports
-WhatIf/-Confirm.
| Cmdlet | What it does |
|---|---|
Set-AthenaAgentUnattended | Sets an agent's unattended designation: -Id <guid> and -Allow $true (skip consent) or -Allow $false (require consent). Returns the updated agent. |
# Designate one machine for unattended access
Set-AthenaAgentUnattended -Id "550e8400-e29b-41d4-a716-446655440000" -Allow $true
# Require attended consent again
Set-AthenaAgentUnattended -Id $agentId -Allow $false
# Enable unattended for every machine tagged "kiosk"
Get-AthenaAgent -Tag "kiosk" | Set-AthenaAgentUnattended -Allow $true
Auditing#
Both changing the designation and using it are recorded in the audit trail:
- Designation changes — enabling or disabling unattended access for a machine is audited with the operator who made the change and the target agent, so the setting has a clear history.
- Unattended sessions — a screen-share session that skips consent is flagged as unattended in the session's audit record, letting you distinguish consent-skipping sessions from attended ones when you review activity. The most recent session (and how it ended) also surfaces in Screen-Share Diagnostics.
Recommendations#
- Enable it only where it's needed. Turn unattended access on for unattended machines (servers, kiosks, signage, lab PCs) and leave user workstations attended so a person is always asked before their desktop is shared.
- Use tags for consistency. Tag your unattended machines and apply the designation by tag from PowerShell, so new machines that join the tag are easy to designate the same way. See Agent Tags.
- Remember someone must be signed in. Unattended skips consent but doesn't enable headless capture — if a machine regularly has no one logged in, plan for that (for example, an auto-logon service account) so screen-share has an interactive desktop to show.
- Review the trail. Because unattended sessions are flagged in the audit log, periodically review them to confirm consent-skipping access is being used as intended.
See also#
- Remote Commands & Desktop — starting a screen-share session.
- Screen-Share Diagnostics — checking a machine's screen-share readiness and last session.
- Session Recordings — recording sessions and the per-agent record policy.
- Agent Tags — grouping machines to apply the designation in bulk.
- Audit & SIEM — where designation changes and unattended sessions are recorded.