Команда msg
уже должна прийти с Windows. (По крайней мере, это здесь, на XP.)
Общий синтаксис:
msg [/server <server>] <session> [<message>]
/server <server>
является обязательным. Используйте его, когда хотите отправить сообщение на другой компьютер. (Это значит почти всегда.)
<session>
может быть:
имя пользователя вошедшего в систему пользователя; примеры: Administrator
, jsmith
"имя сеанса" подключенного сеанса: console
означает тот, который в данный момент использует монитор и клавиатуру. Сеансы RDP называются rdp-tcp#<number>
.
числовой идентификатор сеанса; работает и для отключенных сессий
*
отправить на все сеансы на компьютере. (Это эквивалентно отправке сообщения на компьютер в net send
.)
Используйте qwinsta
или qwinsta /server <server>
для просмотра списка всех существующих в данный момент сеансов. (Или загрузите "Инструменты администрирования Windows 2003" и используйте инструмент tsadmin
.)
Обратите внимание, что в отличие от NetBIOS на базе NET SEND
, вы не можете отправить сообщение всей рабочей группе.
<message>
- это текст, который вы хотите отправить. Если вы не укажете ничего, msg будет ждать ввода, пока вы не введете Ctrl Z в строке.
Например:
msg /server snow console Hi there!
Все эти инструменты (msg, qwinsta, quser, qprocess, tskill, tscon, shadow) используют RPC служб терминалов. В потребительских версиях Windows доступ к этому RPC возможен только с локального компьютера, а не по сети. Чтобы включить его, следуйте этим инструкциям.
TL; DR summary: Запустите следующую команду из командной строки с повышенными правами.
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v AllowRemoteRPC /t REG_DWORD /d 1 /f
RPC передается по тому же протоколу, что и обмен файлами. Если msg или qwinsta возвращают "Отказано в доступе" даже после разрешения удаленного RPC (см. Выше), убедитесь, что вы можете получить доступ к файлам другого компьютера, прошедшим проверку подлинности (не в качестве гостя).