Команда msg отправляет всплывающее текстовое сообщение в сеанс пользователя Windows — по официальной справке Microsoft Learn, для этого у отправителя должно быть право доступа Message к сеансу. Отдельная статья поддержки Microsoft прямо подтверждает: команда действует на всех редакциях Windows 10; на Windows Server она чаще всего используется вместе с ролью служб удалённых рабочих столов, где можно адресовать сразу несколько сеансов.
Синтаксис команды MSG
msg {имя_пользователя | имя_сессии | ID_сессии | @файл | *} [текст_сообщения]имя_пользователя— имя учётной записи Windows.имя_сессии— имя сеанса (например,console), заданное администратором.ID_сессии— числовой идентификатор сеанса (узнать черезquery session).@файл— текстовый файл со списком получателей, по одному на строку.*— все сеансы на указанном сервере.
Ключи и параметры
| Ключ | Описание |
|---|---|
/server:сервер | Сервер, на котором искать получателя. По умолчанию — компьютер, к которому вы подключены сейчас. |
/time:секунды | Время показа сообщения на экране получателя. Если ключ не указан, сообщение по умолчанию показывается 60 секунд и закрывается само — это прямо указано в текущей справке Microsoft. |
/v | Подробный вывод: показывает информацию о каждом получателе. |
/w | Ждать подтверждения от пользователя, что сообщение получено (закрыто). Используйте вместе с /time, чтобы не ждать бесконечно. |
| текст_сообщения | Текст сообщения. Если не указан, msg читает его из стандартного ввода (STDIN) — можно перенаправить из файла. |
/? | Справка по команде. |
Примеры использования
Сообщение конкретному пользователю
msg ivanov Сетевое подключение будет отключено через 5 минут.Сообщение всем пользователям на сервере
msg * /server:SRV01 Сервер будет перезагружен через 10 минут. Сохраните работу.Ограничение времени показа
msg * /time:60 Плановое обслуживание завершено.Без ключа /time сообщение и так исчезнет через 60 секунд по умолчанию — ключ полезен, если нужно другое время.
Отправка по ID сеанса
Если имя пользователя неизвестно, посмотрите список сеансов командой query session, затем отправьте сообщение по номеру:
msg 2 Ваша сессия будет завершена администратором.Сообщение с ожиданием подтверждения
msg user1 /w /time:120 Нажмите OK, когда будете готовы к обновлению.Список получателей из файла
msg @C:\users.txt Напоминание: ежедневный отчёт до 18:00.Текст сообщения из файла
msg TerryJ < C:\msg.txtЭтот приём с перенаправлением ввода — из официального примера Microsoft: msg читает текст сообщения из содержимого файла.
Сообщения не встают в очередь на экране получателя: новое сообщение сразу заменяет предыдущее, если то ещё не закрыто. Это отдельно отмечено в статье поддержки Microsoft — поэтому при отправке нескольких сообщений подряд задавайте
/time, чтобы первое успело исчезнуть.
Частые проблемы
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
| msg не находит пользователя или сеанс | Указанного имени сеанса или ID сейчас нет — сеанс должен быть активным | Проверьте список сеансов командой query session (при необходимости — с /server:) |
| Отказано в доступе | У учётной записи нет права доступа «Message» к сеансу — это официальное требование Microsoft | Запускайте команду из-под учётной записи администратора или из CMD от имени администратора |
| Команда выполнилась, но получатель ничего не видит | Сеанс работает в фоне (например, свёрнутое RDP-подключение), сообщение показывается только на активном экране | Убедитесь, что у пользователя открыт именно этот сеанс на переднем плане |
Сообщение не доходит на другой компьютер через /server | Порт 445 заблокирован брандмауэром или нет доверия между доменами | Проверьте правила брандмауэра Windows и доверительные отношения домена |
Когда применять, а когда нет
MSG подходит для разового оповещения в сети предприятия без установки стороннего ПО — команда изначально рассчитана на серверы с ролью служб удалённых рабочих столов, где нужно предупредить несколько сеансов сразу (например, перед перезагрузкой). Отдельного одноимённого командлета PowerShell у Microsoft нет: для похожих задач в PowerShell пишут собственный код поверх WinRM/CIM либо используют средства управления парком компьютеров (Intune, Endpoint Manager) — они надёжнее для масштабных уведомлений, чем msg.
Частые вопросы
Работает ли MSG в Windows 10 Home?
Да. Статья поддержки Microsoft прямо указывает, что команда действует на всех редакциях Windows 10, без исключения для Home.
А в Windows 11?
Отдельного подтверждения Microsoft для Windows 11 нет: команда входит в общий список Windows Commands без пометки об ограничении по версии, но официальная статья поддержки называет только Windows 10.
Сколько сообщение показывается по умолчанию?
60 секунд, если не задан ключ /time, — так указано в текущей справке Microsoft Learn. Более раннее распространённое описание «сообщение остаётся, пока пользователь его не закроет» этому не соответствует.
Можно ли отправить сообщение на компьютер в другом домене?
Да, если между доменами настроено доверие и трафик по порту 445 не блокируется брандмауэром. Используйте ключ /server:имя_компьютера с полным именем хоста или IP-адресом.
Как узнать имя или ID сеанса получателя?
Командой query session (при необходимости — с ключом /server:имя_сервера). В выводе будут имена пользователей, имена сеансов и их ID.
Сохраняется ли история отправленных сообщений?
Официальная справка Microsoft об этом не говорит; сама msg никакого журнала не ведёт. Для истории уведомлений нужны сторонние средства мониторинга или корпоративные системы оповещений.