O comando msg
já deve vir com o Windows. (Pelo menos é aqui no XP.)
A sintaxe geral é:
msg [/server <server>] <session> [<message>]
-
/server <server>
é opcional. Use-o quando quiser enviar a mensagem para outro computador. (Isso significa quase sempre). -
<session>
pode ser:-
nome de usuário de um usuário logado; exemplos:
Administrator
,jsmith
-
"nome da sessão" de uma sessão conectada:
console
significa aquele que está atualmente usando o monitor e o teclado. As sessões do RDP são nomeadasrdp-tcp#<number>
. -
ID da sessão numérica; funciona para sessões desconectadas também
-
*
para enviar a todas as sessões no computador. (Isso é equivalente a enviar uma mensagem para um computador emnet send
.)
Use
qwinsta
ouqwinsta /server <server>
para listar todas as sessões existentes no momento. (Ou baixe "Windows 2003 Admin Tools" e use sua ferramentatsadmin
.)Observe que, diferentemente do
NET SEND
baseado em NetBIOS, você não pode enviar uma mensagem para um grupo de trabalho inteiro. -
-
<message>
é o texto que você deseja enviar. Se você não especificar nenhum, então msg irá esperar que um seja digitado, até que você digite Ctrl Z em uma linha sozinha .
Por exemplo:
msg /server snow console Hi there!
Todas essas ferramentas (msg, qwinsta, quser, qprocess, tskill, tscon, shadow) usam o RPC dos Serviços de Terminal. Em versões de consumidor do Windows, este RPC só pode ser acessado a partir da máquina local e não através da rede. Para reativá-lo, siga as estas instruções .
TL; Resumo do DR: execute o seguinte em um prompt de comando elevado.
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v AllowRemoteRPC /t REG_DWORD /d 1 /f
O RPC é executado no mesmo protocolo que o Compartilhamento de arquivos. Se msg ou qwinsta retornar um "Acesso negado" mesmo depois de permitir RPC remoto (veja acima), certifique-se que você pode acessar os arquivos do outro computador, autenticado (não como Convidado).