Команда 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 ) отображаются в окне с приглашением к регистрации в системе и могут быть доступны посторонним.
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
Отправляет сообщение пользователю на удаленный рабочий стол сервере узла сеансов. 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
Примеры 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: |