Find the person who needs help by name, press Enter, and you're on their screen.
A small, self-contained Windows tool for anyone who spends their day remote-controlling other people's sessions. No install, no dependencies, no service to run - one PowerShell file and a shortcut to double-click.
Created by Kirk Chewning (@kirkc88) - MIT licensed
The classic way to shadow someone's session looks like this:
query session
set /p usersession= Enter the session ID:
mstsc.exe /shadow:%usersession% /noConsentPrompt /controlWhich means: squint at a wall of text, find the right row, read a number off it, type the number. Every single time. And you'd better not misread it, because there's no undo - you just end up watching the wrong person.
Easy RDP Session Shadow replaces that with: type three letters of their name, press Enter.
- Helpdesk and IT support - someone calls, you're on their screen in about two seconds.
- Anyone running an RDS / Terminal Server - a list of 40 sessions stops being a list you read and becomes a box you type into.
- Small businesses with a line-of-business app on a server (Sage, QuickBooks, an ERP, a POS backend) where staff all work inside one shared box and someone gets stuck daily.
- Managed service providers - point the Computer box at any client server; the last one you used is remembered.
- Computer labs, classrooms, training rooms - see what a machine is doing without walking over to it.
- Anyone who just wants a nicer front end for
mstsc /shadowand is tired of typing session IDs.
- Download the Repo (main.zip) and unzip it anywhere - Desktop, a tools folder, a USB stick, a network share.
- Double-click
Shadow Sessions.cmd. - Approve the UAC prompt. (Shadowing needs admin rights; the script asks for them itself.)
- Start typing a name.
- Press Enter.
That's the whole thing. Nothing is installed and nothing is written outside of a small settings file in your own profile.
| Key | What it does |
|---|---|
| just type | filters the list as you type |
| Up / Down | move through the matches without leaving the search box |
| Enter | shadow the highlighted person |
| Double-click | same thing, with the mouse |
| F5 | refresh the list right now |
| Esc | clear the search - press again to close |
| Right-click a row | shadow with control / shadow view-only / send a message / copy user name |
Search matches on everything in the row, not just the user name: the domain, the PC they're
sitting at, the session ID, the state. Typing ware finds whoever is on WAREHOUSE-03.
Multiple words all have to match, so mendez disc narrows to disconnected Mendez.
| Option | What it means |
|---|---|
| Take control | On: their mouse and keyboard work for you too. Off: you watch but can't touch. (mstsc /control) |
| No consent prompt | Skips the "can I watch your screen?" question on their end. (mstsc /noConsentPrompt) - see the note below. |
| Auto-refresh | Re-reads the session list every 15 seconds. |
| Show system sessions | Also lists session 0, listeners, and sessions with nobody signed in. Off by default, since you can't shadow those. |
All four - plus whatever is in the Computer box - are remembered for next time, in
%LOCALAPPDATA%\SessionShadow\settings.json. Delete that file to start fresh.
Leave the Computer box blank to list sessions on the machine you're sitting at.
Type a server name or IP and press Enter to list that machine's sessions instead. Shadow
then launches mstsc /v:SERVER /shadow:ID. You'll need:
- admin rights on that server, using the account you're currently signed in as;
- the server reachable over the network;
- RPC traffic allowed through its firewall (the "File and Printer Sharing" rule group usually covers it).
If any of that is missing, the app says so in plain English rather than showing you an error number.
- Windows 7 / Server 2008 R2 or newer - any edition, including Home
- Windows PowerShell 5.1 (already on every supported Windows) - PowerShell 7 also works
- Administrator rights on whichever machine you're listing sessions for
mstsc.exe, which ships with Windows
Because those tools aren't always there. They're missing from Windows Home editions entirely, their fixed-width text output is fiddly to parse, and the column headers change with the system display language - so a script built on them breaks the moment you run it somewhere slightly different.
Easy RDP Session Shadow calls the Windows Terminal Services API directly (wtsapi32.dll). That
works on every edition and in every language, and it hands back things query session
never showed you, like the client PC name and real idle time.
- You can't shadow your own session. The app points this out instead of opening a window into infinity.
- The consent prompt setting depends on policy. "No consent prompt" only works if the Group Policy Set rules for remote control of Remote Desktop Services user sessions is configured to allow it. If a shadow attempt flashes open and instantly closes, that policy is almost always the reason. Untick the box and the user will simply get a prompt to accept.
- Shadow the ethical way. Silent, no-consent remote control is a real capability. Use it where you're authorized to and where people know it's part of how support works.
- It's plain text - go change it. Everything lives in
ShadowSessions.ps1. The colours are the#FF......values in the XAML block near the top; the refresh interval is one line near the bottom.
| File | What it is |
|---|---|
Shadow Sessions.cmd |
The launcher. This is the one you double-click. |
ShadowSessions.ps1 |
The entire app - UI, session enumeration, everything. |
screenshot.png |
The picture above. |
LICENSE |
MIT. |
Issues and pull requests are welcome. If you hit a case the session parser handles badly - an unusual RDS setup, a non-English Windows, a session state that looks wrong - please include what you expected to see and what you got.
MIT - see LICENSE. Use it, change it, ship it in your own toolkit. Provided as-is, with no warranty.
