MSG — отправка сообщений пользователям через командную строку

MSG — команда CMD для отправки текстовых сообщений пользователям локального компьютера или сети Windows. Поддерживает адресацию по имени, сессии и домену.

MSG — команда командной строки Windows, которая отправляет текстовое всплывающее сообщение конкретному пользователю, сессии или группе пользователей на локальном компьютере или в сети. Применяется системными администраторами для оперативного оповещения без сторонних мессенджеров.

Синтаксис команды 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.

Оцените статью
( 1 оценка, среднее 5 из 5 )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.