MSG — команда командной строки Windows, которая отправляет текстовое всплывающее сообщение конкретному пользователю, сессии или группе пользователей на локальном компьютере или в сети. Применяется системными администраторами для оперативного оповещения без сторонних мессенджеров.
- Синтаксис команды MSG
- Ключи и параметры
- Примеры использования
- Отправить сообщение конкретному пользователю локального компьютера
- Отправить сообщение всем пользователям на сервере
- Ограничить время отображения сообщения
- Найти ID сессии и отправить сообщение по нему
- Отправить сообщение с ожиданием ответа
- Использовать список получателей из файла
- Частые ошибки и решения
- Когда применять, а когда нет
- FAQ
- Работает ли MSG в Windows 10 Home?
- Можно ли отправить сообщение на компьютер в другом домене?
- Как узнать имя сессии получателя?
- Сохраняется ли история отправленных сообщений?
- Как отправить многострочное сообщение?
Синтаксис команды MSG
msg {имя_пользователя | имя_сессии | ID_сессии | @файл | *} [/SERVER:сервер] [/TIME:секунды] [/V] [/W] [текст_сообщения] Параметры адресата:
имя_пользователя— имя учётной записи Windows (например,Administrator).имя_сессии— имя сессии (например,console).ID_сессии— числовой идентификатор сессии (узнать черезquery session).@файл— текстовый файл со списком получателей (по одному на строку).*— все сессии на указанном сервере.
Ключи и параметры
| Ключ | Описание | Пример |
|---|---|---|
/SERVER:сервер | Указывает сервер, на котором нужно найти получателя. По умолчанию — локальный компьютер. | msg user1 /SERVER:SRV01 Привет |
/TIME:секунды | Время отображения сообщения в секундах. По умолчанию сообщение остаётся до закрытия пользователем. | msg * /TIME:30 Уходим через 30 сек |
/V | Подробный вывод: показывает информацию об отправке каждому получателю. | msg * /V Сервер перезагружается |
/W | Ожидать ответа от пользователя. Команда не завершится, пока получатель не закроет окно сообщения. | msg user1 /W Подтвердите получение |
текст_сообщения | Текст, который будет отображён в диалоге. Если не указан, команда читает текст из стандартного ввода. | msg user1 Плановое обслуживание |
Примеры использования
Отправить сообщение конкретному пользователю локального компьютера
Нужно оповестить пользователя ivanov, вошедшего в систему, о завершении работы сети:
msg ivanov Сетевое подключение будет отключено через 5 минут.
На экране у ivanov появится диалоговое окно с текстом сообщения.
Отправить сообщение всем пользователям на сервере
Администратору нужно одновременно уведомить всех подключённых пользователей о перезагрузке:
msg * /SERVER:SRV01 Сервер будет перезагружен через 10 минут. Сохраните работу.
Сообщение получат все активные сессии на сервере SRV01.
Ограничить время отображения сообщения
Краткое уведомление, которое закроется автоматически через 60 секунд:
msg * /TIME:60 Плановое обслуживание завершено. Работа системы восстановлена.
Через 60 секунд окно закроется без участия пользователя.
Найти ID сессии и отправить сообщение по нему
Если имя пользователя неизвестно, узнайте ID сессии:
query session
Затем отправьте сообщение по числовому идентификатору:
msg 2 Ваша сессия будет завершена администратором.
Отправить сообщение с ожиданием ответа
При выполнении скрипта иногда нужно дождаться, пока пользователь прочитает и закроет окно:
msg user1 /W Нажмите OK, когда будете готовы к обновлению.
Скрипт приостановится и продолжится только после закрытия окна пользователем.
Использовать список получателей из файла
Создайте файл users.txt со списком пользователей (по одному на строку), затем:
msg @C:\users.txt Напоминание: ежедневный отчёт до 18:00.
Сообщение будет отправлено каждому пользователю из списка.
Частые ошибки и решения
| Ошибка / симптом | Причина | Решение |
|---|---|---|
Error 5 getting session names | Недостаточно прав: команда запущена от обычного пользователя. | Запустите командную строку от имени администратора. |
Error 1825 getting session names | На удалённом компьютере не разрешён приём сообщений через сеть (служба Messenger отключена или порт 445 закрыт). | Включите службу Messenger на целевом компьютере и откройте порт 445 в брандмауэре для локальной сети. |
| Пользователь не получает сообщение, хотя команда выполнилась | Пользователь не вошёл в систему, или его сессия находится в фоновом режиме (RDP без активного рабочего стола). | Проверьте список активных сессий через query session /SERVER:имя_сервера. Сообщения доходят только до активных сессий. |
MSG: не удалось отправить сообщение для имени сессии console | На домашних редакциях Windows (Home) служба приёма сообщений отсутствует. | Команда MSG в полной мере работает только на Windows Pro, Enterprise и Server. На домашних редакциях используйте сторонние инструменты. |
| Кириллица отображается как вопросительные знаки или кракозябры | Несоответствие кодировки командной строки и системы отображения. | Перед запуском MSG выполните chcp 1251 для переключения на кодировку Windows-1251, или используйте chcp 65001 для UTF-8. |
Когда применять, а когда нет
MSG подходит для быстрого оповещения пользователей в корпоративной сети без установки дополнительного ПО — например, перед плановой перезагрузкой сервера или отключением сетевого ресурса. Команда требует прав администратора и работает только в редакциях Windows Pro, Enterprise и Server; на домашних редакциях функциональность ограничена. Для отправки сообщений между компьютерами в сети необходимо открытое подключение по порту 445 и включённая служба приёма сообщений. Аналог в PowerShell — командлет Send-Message из модуля управления удалёнными рабочими столами, либо WinRM-команды для широковещательных уведомлений.
FAQ
Работает ли MSG в Windows 10 Home?
Частично. Отправить сообщение на локальную сессию можно, но сетевая адресация и часть ключей недоступны. Полноценная работа — только на Pro, Enterprise и Server.
Можно ли отправить сообщение на компьютер в другом домене?
Да, если между доменами настроено доверие и открыт порт 445. Используйте ключ /SERVER:имя_компьютера с полным именем хоста или IP-адресом.
Как узнать имя сессии получателя?
Выполните команду query session (или query session /SERVER:имя_сервера для удалённого компьютера). В выводе будут имена пользователей, имена сессий и их ID.
Сохраняется ли история отправленных сообщений?
Нет. MSG не ведёт журнал отправленных или полученных сообщений. Если нужна история — используйте корпоративные мессенджеры или системы уведомлений с логированием.
Как отправить многострочное сообщение?
Запустите MSG без текста в аргументах — команда перейдёт в режим ввода из стандартного потока. Введите текст построчно и завершите ввод сочетанием Ctrl+Z, затем Enter.


