Note: This application was developed for practical use in real IT environments, aiming to facilitate RDP session management. It is not a commercial product, but a robust and functional solution for daily IT needs.
Shadow RDP is a lightweight and efficient graphical interface to monitor, shadow-connect, disconnect, and message RDP sessions on Windows servers, developed in PowerShell.
Warning: This tool facilitates access to user sessions with elevated privileges, potentially without the end user's consent. Responsibility for ethical use and compliance with your organization's privacy and security policies lies entirely with you. Misuse may result in privacy violations. Use with caution and responsibility.
To use this tool, the Windows Remote Control feature must be enabled on the target computer via Group Policy (GPO):
- Run
gpedit.mscas administrator. - Navigate to: Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Connections.
- Find and enable the policy: "Set rules for remote control of Remote Desktop Services user sessions".
- Within the enabled policy, select the desired option under "Options" (e.g., "Full Control with user's permission" or "Full Control without user's permission").
- Text Output Dependency: The session list is generated by parsing the output of the
query sessioncommand. Future Windows updates may change this format, potentially breaking session listing. If this happens, please open an issue in this repository. - Use on Windows Client: On non-Server versions of Windows (10, 11), this functionality is only viable with third-party tools (such as RDP Wrapper) that modify the system in ways not supported by Microsoft. Use in such environments is experimental and carries additional security and stability risks.
- List active and disconnected RDP sessions (local and remote users) by parsing the output of
query session - Shadow (mirror) connection to RDP sessions
- Disconnect (logoff) selected sessions
- Send message to selected session (via
msgcommand) - Modern interface with DataGridView
- Automatic administrator privilege detection
- Customizable icon for the executable and window
- Automatic language detection (pt-BR, en)
- Robust and secure: uses absolute paths for system binaries and avoids path hijacking
- Windows 10/11 or Server (with PowerShell 5+)
- Administrator permissions to execute shadow and logoff commands
- PowerShell installed (native on Windows)
- PS2EXE to compile to .exe (optional)
- Place the files
shadowRDP.ps1andshadowRDP.icoin the same folder. - Run as administrator:
- Right-click
shadowRDP.ps1and select "Run with PowerShell". - Or, in the terminal:
powershell -ExecutionPolicy Bypass -File .\shadowRDP.ps1
- Right-click
- The interface will appear.
- Click "Atualizar Sessões" (Update Sessions) to list sessions.
- Select a session and use the buttons to shadow-connect, disconnect, or send a message.
- Use the "Enviar Mensagem" (Send Message) button to send a custom message to the selected session. The message is delivered via the Windows
msgcommand. - Limitation: It is not possible to receive an automatic reply from the user through this method. The message is displayed to the user, but any response must be manual (e.g., via chat, phone, etc).
- The interface automatically detects the Windows language: supports only pt-BR and en. No manual configuration is needed for language selection.
- Install PS2EXE:
Install-Module -Name ps2exe -Scope CurrentUser
- Compile the script:
ps2exe .\shadowRDP.ps1 .\shadowRDP.exe -icon shadowRDP.ico -noConsole
- Run the
.exeas administrator.
- The app requires administrator privileges to work properly.
- The path to mstsc.exe is absolute (
C:\Windows\System32\mstsc.exe), preventing path hijacking attacks. - The icon is loaded both in the executable and in the app window.
- Clean, commented, and easy-to-maintain code.
- To change the icon, replace the
shadowRDP.icofile with one of your choice. - To change texts or layout, edit the
shadowRDP.ps1file.
Distributed under the MIT license. See the LICENSE file for more details.
Questions, suggestions, or improvements? Feel free to open an issue or submit a pull request.
Nota: Este aplicativo foi desenvolvido para uso prático em ambientes reais de TI, com o objetivo de facilitar o gerenciamento de sessões RDP. Não se trata de um produto comercial, mas sim de uma solução robusta e funcional para demandas do dia a dia.
Shadow RDP é uma interface gráfica leve e eficiente para monitorar, conectar, desconectar e enviar mensagens para sessões RDP em servidores Windows, desenvolvida em PowerShell.
Atenção: Esta ferramenta facilita o acesso a sessões de usuário com privilégios elevados, potencialmente sem o consentimento do usuário final. A responsabilidade por usar esta ferramenta de forma ética e em conformidade com as políticas de privacidade e segurança de seu ambiente de trabalho é inteiramente sua. O uso indevido pode resultar em violações de privacidade. Use com cautela e responsabilidade.
Para que esta ferramenta funcione, o recurso de Controle Remoto do Windows deve ser habilitado no computador de destino através da Política de Grupo (GPO).
- Execute
gpedit.msccomo administrador. - Navegue até: Configuração do Computador → Modelos Administrativos → Componentes do Windows → Serviços de Área de Trabalho Remota → Host de Sessão da Área de Trabalho Remota → Conexões.
- Encontre e habilite a política: "Definir regras para controle remoto de sessões de usuário dos Serviços de Área de Trabalho Remota".
- Dentro da política habilitada, selecione a opção desejada em "Opções" (ex: "Controle Total com permissão do usuário" ou "Controle Total sem permissão do usuário").
- Dependência da Saída de Texto: A lista de sessões é gerada através da análise da saída do comando
query session. Futuras atualizações do Windows podem alterar o formato deste texto, o que pode fazer com que a listagem de sessões falhe. Caso isso ocorra, por favor, abra uma issue neste repositório. - Uso em Windows Cliente: Em versões não-Servidor do Windows (10, 11), esta funcionalidade só é viável com o uso de ferramentas de terceiros (como o RDP Wrapper) que modificam o sistema de forma não suportada pela Microsoft. O uso em tais ambientes é experimental e acarreta riscos adicionais de segurança e estabilidade.
- Listagem de sessões RDP ativas e desconectadas (usuários locais e remotos) por parsing da saída do comando
query session - Conexão shadow (espelhamento) em sessões RDP
- Desconexão (logoff) de sessões selecionadas
- Envio de mensagem para a sessão selecionada (via comando
msg) - Interface moderna com DataGridView
- Detecção automática de privilégios de administrador
- Ícone customizável para o executável e janela
- Detecção automática de idioma (pt-BR, en)
- Robustez e segurança: usa caminhos absolutos para binários do sistema e evita path hijacking
- Windows 10/11 ou Server (com PowerShell 5+)
- Permissões de administrador para executar comandos de shadow e logoff
- PowerShell instalado (nativo no Windows)
- PS2EXE para compilar em .exe (opcional)
- Coloque os arquivos
shadowRDP.ps1eshadowRDP.icona mesma pasta. - Execute como administrador:
- Clique com o botão direito no
shadowRDP.ps1e selecione "Executar com PowerShell". - Ou, no terminal:
powershell -ExecutionPolicy Bypass -File .\shadowRDP.ps1
- Clique com o botão direito no
- A interface será exibida.
- Clique em "Atualizar Sessões" para listar.
- Selecione uma sessão e utilize os botões para conectar (shadow), desconectar ou enviar mensagem.
- Utilize o botão "Enviar Mensagem" para enviar uma mensagem personalizada para a sessão selecionada. A mensagem é entregue via comando
msgdo Windows. - Limitação: Não é possível obter resposta automática do usuário por este método. A mensagem é exibida ao usuário, mas qualquer resposta deve ser feita manualmente (ex: chat, telefone, etc).
- A interface detecta automaticamente o idioma do Windows: suporta apenas pt-BR e en. Não é necessário alterar manualmente nenhuma configuração para o idioma.
- Instale o PS2EXE:
Install-Module -Name ps2exe -Scope CurrentUser
- Compile o script:
ps2exe .\shadowRDP.ps1 .\shadowRDP.exe -icon shadowRDP.ico -noConsole
- Execute o
.execomo administrador.
- O aplicativo exige execução como administrador para garantir o funcionamento correto.
- O caminho do mstsc.exe é absoluto (
C:\Windows\System32\mstsc.exe), prevenindo ataques de path hijacking. - O ícone é carregado tanto no executável quanto na janela do aplicativo.
- Código limpo, comentado e de fácil manutenção.
- Para trocar o ícone, substitua o arquivo
shadowRDP.icopor outro de sua preferência. - Para alterar textos ou layout, edite o arquivo
shadowRDP.ps1.
Distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Dúvidas, sugestões ou melhorias? Fique à vontade para abrir uma issue ou enviar um pull request.
Esta ferramenta permite o controle remoto de sessões de usuário sem o consentimento deles. Habilitar e usar essa funcionalidade tem implicações sérias de privacidade e segurança. Use com extrema cautela e apenas em conformidade com as políticas da sua organização.
Para compilar rapidamente o script em um executável com ícone personalizado e sem console, utilize o comando abaixo:
ps2exe .\shadowRDP.ps1 .\Sombreamento.exe -icon shadowRDP.ico -noConsole