Windows msg что такое

Команда MSG – отправить сообщение пользователю.

Команда MSG существовала еще в Windows 2000/XP и предназначалась для обмена сообщениями между пользователями вошедшими в систему локально и пользователями терминальных сессий ( подключившихся к удаленному рабочему столу ) . В Windows Vista и более поздних операционных системах семейства Windows команда MSG стала основным стандартным средством обмена сообщениями, поскольку команда net send в данных ОС больше не поддерживается.

Формат командной строки:

Описание параметров командной строки :

пользователь — Имя пользователя.
имя сеанса — Имя сеанса.
ID сеанса — Идентификатор сеанса.
@имя файла — Файл, содержащий список имен пользователей, сеансов или идентификаторов сеансов, которым отправляется сообщение.
* — Отправить сообщение всем сеансам на указанном сервере.
/SERVER:сервер — Сервер (по умолчанию — текущий).
/TIME:секунд — Интервал ожидания подтверждения от получателя.
/V — Отображение информации о выполненных действиях.
/W — Ожидание ответа от пользователя, полезно вместе с /V.
сообщение — Отправляемое сообщение. Если не указано, выдается запрос или принимается ввод из STDIN.

Нынешняя реализация msg.exe прекрасно подходит для обмена сообщениями между сеансами локальных и терминальных пользователей в пределах одной системы, однако, в случаях обмена между разными компьютерами локальной сети, потребуется изменить некоторые настройки безопасности, принятые по умолчанию в операционных системах Windows Vista, 7 и более поздних.

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

Ошибка 1722 при получении имен сеанса

Это означает, что на компьютере, где должно приниматься посылаемое сообщение, невозможно получить информацию о вошедших в систему пользователях. Причиной может быть то, что брандмауэр блокирует входящие соединения, недостаточны права пользователя по отношению к удаленной системе, запрет удаленного вызова процедур в параметрах службы сервера терминалов. Как минимум, для обмена сообщениями с использованием команды msg между компьютерами, необходимо иметь учетную запись пользователя, действительную по отношению к удаленной системе и выполнить следующие настройки:

на каждом компьютере, которому будут отправляться сообщения, добавить в раздел реестра HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server параметр AllowRemoteRPC типа REG_DWORD и равный 1 Для изменения настроек можно использовать .reg-файл следующего содержания:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
«AllowRemoteRPC»=dword:00000001

В ОС Windows Vista, Windows 7, 8, 10 ключ реестра AllowRemoteRPC существует, но имеет значение равное 0 , что необходимо исправить. Для применения изменений требуется перезагрузка.

поскольку для обмена сообщениями утилита msg.exe использует протокол SMB (Server Message Block ), на каждом компьютере, которому будут отправляться сообщения, должен быть открыт TCP порт 445

Примеры использования MSG :

msg * /server:Server «Тестовое сообщение » — отправить тестовое сообщение всем пользователям компьютера Server

msg * /server:192.168.0.1 «Тестовое сообщение » — отправить тестовое сообщение всем пользователям компьютера с IP-адресом 192.168.0.1

msg RDP-Tcp#0 /server:TSServer «Тестовое сообщение» — отправить тестовое сообщение пользователю терминальной сессии с именем RDP-Tcp#0 на компьютере TSServer

msg console /server:Windows7 «Тестовое сообщение» — отправить тестовое сообщение текущему локальному пользователю компьютера Windows7

msg console «Тестовое сообщение» — отправка тестового сообщения от пользователя сеанса RDP локальному пользователю. Если эта команда выполняется не пользователем терминальной сессии, то сообщение будет отправлено локальным пользователем самому себе.

Для выполнения команды msg от имени другого пользователя можно воспользоваться утилитой PSExec из пакета PSTools или штатным средством runas.exe

psexec -u otheruser -p otherpass msg * /server:win10 TEST message

runas /user:otheruser «msg * /server:win10 Test message»

Сообщения, отправляемые командой msg локальному пользователю компьютера с операционной системой Windows XP, который отсутствует ( еще не вошел в Windows ) отображаются в окне с приглашением к регистрации в системе и могут быть доступны посторонним.

Читайте также:  Huawei honor windows driver

MSG и с чем его едят…

Давно сюда не писал и не опубликовывал статьи… Что ж буду исправлять данное недоразумение 🙂

В конце года у нас в конторе произошли изменения и мы переезжали с домена на домен. Переезжали долго и достаточно мучительно, но сейчас не об этом.

Была задача быстрого оповещения пользователей по ЧС в сети, плановым перезагрузкам серверов и т.д.

Мы с коллегой вспомнили про консольную команду net send, но так как она больше не поддерживается, есть альтернатива — это MSG

Все команды подробно расписывать не буду, можно спокойно воспользоваться ключом «/?»

Запускаем командную строку

Команда очень простая, достаточно указать «user_name» (как заводили на AD) и текст сообщения (кавычки можно ставить, можно не ставить — работают оба варианта)

msg _ vasyapupkin _»в 12-00 будет перезагрузка сервера»

При нажатии клавиши «Enter», пользователю vasyapupkin, на рабочем столе выскочит окно с текстом сообщения что мы от него хотим)

Бывают ситуации когда возникает ошибка «Ошибка 1722 при получении имен сеанса»

Решение следующие (выполняется на всех компьютерах кому необходимо получение сообщения) :

  1. Проверяем открыт ли порт 445 (смотрим в брандмауэре, по умолчанию — открыт, но лучше проверить :)))
  2. Редактируем параметр AllowRemoteRPC типа REG_DWORD в реестре по пути HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server равный 1 (у вас будет в поле стоять 0

Вот и всё, теперь все пользователи смогут принимать от вас быстрые сообщения!

Так же еще можно добавить запись в Групповые политики на сервере, чтоб автоматически распространилось на всех, но это уже другая история!

Если будет интересно, расскажу в следующей статье!

Отправка сообщений с помощью msg.exe

Сегодня я хочу вам рассказать о том, как можно отправить сообщение по сети с помощью msg.exe (утилита в Windows для осуществления передачи сообщений).

В ОС Vista этой процедурой занималась ныне устаревшая команда net send (консольное приложение, входящее в состав некоторых версий ОС Windows, предназначенное для отправки сообщений по локальной сети другому пользователю или компьютеру), которая больше не поддерживается.

Синтаксис msg.exe

Параметры msg.exe

имя сеанса — Имя сеанса

ID сеанса — Идентификатор сеанса

@имя файла — Файл, содержащий список имен пользователей, сеансов или идентификаторов сеансов, которым отправляется сообщение

* — Отправить сообщение всем сеансам на указанном сервере

/SERVER:сервер — Сервер (по умолчанию — текущий)

/TIME:секунд — Интервал ожидания подтверждения от получателя

/V — Отображение информации о выполненных действиях

/W — Ожидание ответа от пользователя, полезно вместе с /V

сообщение — Отправляемое сообщение. Если не указано, выдается запрос или принимается ввод из STDIN

Использование утилиты msg.exe на примере отправки сообщения терминальным пользователям в OS Windows Server 2008

В этом примере из командной строки (cmd.exe) я отправил сообщение test1 терминальному пользователю с именем Администратор. Если бы заменил названия пользователя и указал бы команду msg * test1, то сообщение передалось бы всем пользователям терминального сервера.

При частоте использовании утилиты, можно сохранить значение в файле с расширением .bat (как создать файл с таким расширением, читайте здесь, хотя, если вы администрируете сервер, вам скорее всего не потребуется эта статья).

Например, если вам необходимо в течении дня два-три раза сообщить пользователям 1С о необходимости закрыть программу. К сожалению, при использовании командной строки, русские шрифты могут отображаться некорректно, поэтому могу предложить в качестве решения проблемы 2 варианта:

  • Вариант отправки каждому пользователю по отдельности (если их конечно достаточно малое количество).

Для этого вызываем диспетчер задач, находясь в окне терминала или непосредственно на самом сервере (ctrl+shift+esc), переходим на вкладку «Пользователи», выделяем нужного нам и правой кнопкой мыши выбираем пункт «Отправить сообщение».

  • Этот вариант подразумевает работу в командной строке с использованием Windows PowerShell.

Команды пишутся по тому же принципу, как и в cmd.exe, но здесь есть простая настройка отображения шрифтов (правой кнопкой мышки в верхнем левом углу и выбор пункта «Свойства»)

Читайте также:  Lock windows 10 start menu

Переходим на вкладку «Шрифт» и меняем значение на LucidaConsole

Теперь шрифты кириллицы будут отображаться корректно.

На этом пока все, что я хотел рассказать вам сегодня. Спасибо, что читали.

Evgeniy Korshunov

Этот блог — мой персональный сетевой помощник + коллекция ссылок

четверг, 29 января 2015 г.

Команда MSG – отправить сообщение пользователю

Команда MSG существовала еще в Windows 2000/XP и предназначалась для обмена сообщениями между пользователями вошедшими в систему локально и пользователями терминальных сессий ( подключившихся к удаленному рабочему столу ) . В Windows Vista и более поздних операционных системах семейства Windows команда MSG стала основным стандартным средством обмена сообщениями, поскольку команда net send в данных ОС больше не поддерживается.

Формат командной строки:

Описание параметров командной строки :

Нынешняя реализация msg.exe прекрасно подходит для обмена сообщениями между сеансами локальных и терминальных пользователей в пределах одной системы, однако, в случаях обмена между разными компьютерами локальной сети, потребуется изменить некоторые настройки безопасности, принятые по умолчанию в операционных системах Windows Vista, 7 и 8 .

Обычно, при стандартных настройках, отправка сообщения на удаленный компьютер, не выполняется и сопровождается сообщением

Ошибка 1722 при получении имен сеанса

Это означает, что на компьютере, где должно приниматься посылаемое сообщение, невозможно получить информацию о вошедших в систему пользователях. Причиной может быть то, что брандмауэр блокирует входящие соединения, недостаточны права пользователя по отношению к удаленной системе, запрет удаленного вызова процедур в параметрах службы сервера терминалов. Как минимум, для обмена сообщениями с использованием команды msg между компьютерами, необходимо иметь учетную запись пользователя, действительную по отношению к удаленной системе и выполнить следующие настройки:

на каждом компьютере, которому будут отправляться сообщения, добавить в раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server параметр AllowRemoteRPC типа REG_DWORD и равный 1 Для изменения настроек можно использовать .reg-файл следующего содержания:

В ОС Windows Vista, Windows 7, 8, 10Technical Preview ключ реестра AllowRemoteRPC существует, но имеет значение равное 0 , что необходимо исправить. Для применения изменений требуется перезагрузка.

поскольку для обмена сообщениями утилита msg.exe использует протокол SMB (Server Message Block ), на каждом компьютере, которому будут отправляться сообщения, должен быть открыт TCP порт 445

Примеры использования MSG:

msg * /server:Server «Тестовое сообщение « — отправить тестовое сообщение всем пользователям компьютера Server

msg * /server:192.168.0.1 «Тестовое сообщение « — отправить тестовое сообщение всем пользователям компьютера с IP-адресом 192.168.0.1

msg RDP-Tcp#0 /server:TSServer «Тестовое сообщение» — отправить тестовое сообщение пользователю терминальной сессии с именем RDP-Tcp#0 на компьютере TSServer

msg console /server:Windows7 «Тестовое сообщение» — отправить тестовое сообщение текущему локальному пользователю компьютера Windows7

msg console «Тестовое сообщение» — отправка тестового сообщения от пользователя сеанса RDP локальному пользователю. Если эта команда выполняется не пользователем терминальной сессии, то сообщение будет отправлено локальным пользователем самому себе.

Для выполнения команды msg от имени другого пользователя можно воспользоваться утилитой PSExec из пакета PSTools или штатным средством runas.exe

psexec -u otheruser -p otherpass msg * /server:win10 TEST message

runas /user:otheruser «msg * /server:win10 Test message»

msg msg

Область применения: Windows Server (половина ежегодного канала), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012 Applies to: Windows Server (Semi-Annual Channel), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012

Отправляет сообщение пользователю на удаленный рабочий стол сервере узла сеансов. Sends a message to a user on a Remote Desktop Session Host server.

Для отправки сообщения необходимо иметь специальное разрешение на доступ к сообщениям. You must have Message special access permission to send a message.

Синтаксис Syntax

Параметры Parameters

Параметр Parameter Описание Description
Указывает имя пользователя, которому требуется получить сообщение. Specifies the name of the user that you want to receive the message. Если вы не укажете пользователя или сеанс, эта команда выведет сообщение об ошибке. If you don’t specify a user or a session, this command displays an error message. При указании сеанса он должен быть активным. When specifying a session, it must be an active one.
Указывает имя сеанса, для которого требуется получить сообщение. Specifies the name of the session that you want to receive the message. Если вы не укажете пользователя или сеанс, эта команда выведет сообщение об ошибке. If you don’t specify a user or a session, this command displays an error message. При указании сеанса он должен быть активным. When specifying a session, it must be an active one.
Указывает числовой идентификатор сеанса, пользователь которого должен получить сообщение. Specifies the numeric ID of the session whose user you want to receive a message.
@ Определяет файл, содержащий список имен пользователей, имен сеансов и идентификаторов сеансов, для которых требуется получить сообщение. Identifies a file containing a list of user names, session names, and session IDs that you want to receive the message.
* Отправляет сообщение всем именам пользователей в системе. Sends the message to all user names on the system.
/server: /server: Указывает удаленный рабочий стол сервер узла сеансов, сеанс или пользователь которого должен получить сообщение. Specifies the Remote Desktop Session Host server whose session or user you want to receive the message. Если не указано, то /Server использует сервер, на котором вы выполнили вход в систему. If unspecified, /server uses the server to which you are currently logged on.
Таймаут /time: Указывает время, в течение которого отправленное сообщение отображается на экране пользователя. Specifies the amount of time that the message you sent is displayed on the user’s screen. По истечении предельного времени сообщение исчезает. After the time limit is reached, the message disappears. Если ограничение времени не задано, сообщение остается на экране пользователя, пока пользователь не увидит сообщение и не нажмет кнопку ОК. If no time limit is set, the message remains on the user’s screen until the user sees the message and clicks OK.
/v /v Отображает сведения о выполняемых действиях. Displays information about the actions being performed.
/W /w Ожидает подтверждения от пользователя о получении сообщения. Waits for an acknowledgment from the user that the message has been received. Используйте этот параметр вместе с /time: , чтобы избежать возможной длительной задержки, если пользователь не отвечает немедленно. Use this parameter with /time: to avoid a possible long delay if the user does not immediately respond. Использование этого параметра с параметром /v также полезно. Using this parameter with /v is also helpful.
Указывает текст сообщения, которое необходимо отправить. Specifies the text of the message that you want to send. Если сообщение не указано, появится запрос на ввод сообщения. If no message is specified, you will be prompted to enter a message. Чтобы отправить сообщение, содержащееся в файле, введите символ «меньше» ( To send a message that is contained in a file, type the less than (
/? /? Отображение справки в командной строке. Displays help at the command prompt.

Примеры Examples

Чтобы отправить сообщение с правом, давайте соблюдаем на 13:00-14:30 сегодня все сеансы для пользователя User1, введите: To send a message entitled, Let’s meet at 1PM today to all sessions for User1, type:

Чтобы отправить то же сообщение в сеанс modeM02, введите: To send the same message to session modeM02, type:

Чтобы отправить сообщение всем сеансам, содержащимся в файле USERLIST, введите: To send the message to all sessions contained in the file userlist, type:

Чтобы отправить сообщение всем вошедшим пользователям, введите: To send the message to all users who are logged on, type:

Чтобы отправить сообщение всем пользователям с подтверждением истечения времени ожидания (например, 10 секунд), введите: To send the message to all users, with an acknowledgment time-out (for example, 10 seconds), type:

Читайте также:  Windows 10 забыл пароль администратора при входе
Оцените статью