Команда msg вин 7 не работает. Команда MSG – отправить сообщение пользователю. Включение и отключение службы сообщений и net send

Info
My Windows-Server 2008 R2 machine couldn’t msg my Windows 7 box due to Error 5 getting session names.
I found the solution , in a comment made by Consoles. I reblog it so it can be found easier.

It turns out it has nothing to do with not being on the same domain or whatever. It is due to a setting related to Terminal Server.
That’s not to miraculous, since msg.exe is designed for messaging to terminal users.

So, changing a simple registry value and rebooting makes it all work again.

Solution
On the machine that you cannot message to:
Use regedit to navigate to:
Then change the following value:

Name: AllowRemoteRPC
Type: REG_DWORD
Value: 1

Reboot. Now it should work. 🙂

    I did this on all my Windows 7 HP machines and it got rid of the error 5 but now it says does not exist or is disconnected. Any solution yet. I have been google-ing for about 3 hours on this and haven’t found anything other than 3rd party installs which is impractical in my situation.

    Hi All after much trying and re trying i got it right to send windows 7 to windows 7

    using the following command

    msg /server:pcname username message

    server stays as is. pcname is the name of the pc you are sending to. user name is the name the user is logged in under on that PC. message is obviously the msg u want to send.

    you will also need to change a setting on the receiving computer by using regedit.

    the following registry key must be activated (as described by Consoles above):

    HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server

    Name: AllowRemoteRPC

    Value: 1 (the dafault is ‘0’)

    Isn’t allowing remote RPC like, a *HUGE* security risk?

    I’d like to enable this so me and my roommate downstairs can have a ridiculously simple way to communicate, but if it means allowing his computer to make RPC calls, I’m afraid if he has a virus my computer will catch it, or if for some reason RPC requests are able to pass through my router, anyone over the internet will have an easy attack vector to my machine.

    I think there’s a reason it’s disabled in Vista/7 by default. I’m not sure if the winpopup is worth compromising your security.

    superray: search in regedit (F3) for ‘allowremoterpc’ it will find it

    anon: yes, but only in intranet, and only if your firewall does not stop it. the rooter firewall will prevent all attempts by default. (it could be a problem only in mass lan-s like barding school. If scared, use skype or msn (meeboo.com)

    You can send messages among Windows 7 machines and Windows XP machines on a LAN using freeware. It took a lot of searching, but I found an app that works from a command prompt and in batch files to send messages.

    I had hoped to use msg.exe on our LAN, but after trying all the recommended Registry tweaks, firewall changes, etc., I could only send messages to Windows 7 machines. The above freeware apps worked right away sending to Windows XP machines and to Windows 7 machines. They work on both Workgroup LANs and on domains.

    WinSend is a more traditional Instant Messaging application that starts at about $12 and goes down in price based on quantity of licenses purchased.

    I know this is old, but maybe someone has a solution.

    My computer: PC
    Target: LAPTOP (192.168.0.110)

    msg /server:laptop * “Hello Laptop”
    Returns * does not exist or is disconnected.

    Trying with IP
    msg /server:192.168.0.110 * “Hello Lappy”
    Returns ‘Error 5 getting session names’

    I have already applied the registry change and rebooted the machine multiple times.

    Any other suggestions?

    you need to do what SUHAIL said…
    and the computer wich you are triying to conect need a password, and user… added in windows credentials,
    shearch in windows credential manager… and add the user and password…

    Hi i tried to go to regedit and follow the steps but it doesn’t have a folder called HKML instead it has HKEY_CLASSES_ROOT and HKEY_CURRENT_USER etc. can i get the path for the folders i have?

    modify regedit file

    HKLM \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server

    Name: AllowRemoteRPC

    Value: 1 (the dafault is ‘0’)

    msg / SERVER: Destination User “send message”
    regards

    _______________________________________

    modificar archivo regedit

    HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server

    Name: AllowRemoteRPC

    Value: 1 (the dafault is ‘0’)

    envio de mensaje

    msg /SERVER:Destino Usuario “mensaje a enviar”

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

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

MSG {пользователь | имя сеанса | ID сеанса | @имя файла | *} [сообщение]

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

пользователь - Имя пользователя.
имя сеанса - Имя сеанса.
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
    "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) отображаются в окне с приглашением к регистрации в системе и могут быть доступны посторонним.

    В старых операционных системах семейства Windows Server , вплоть до Windows Server 2008 R2 , есть возможность отправки сообщений всем активным пользователям сервера через Диспетчер задач. Это может быть очень полезно, если нужно оповестить их о каком-нибудь событии, например о выключении сервера или проведении каких-либо технических работ.

    Делается это достаточно просто - первым делом нужно открыть Диспетчер задач (самый простой способ - нажать правой кнопкой по панели задач, и выбрать "Диспетчер задач ").

    В Диспетчере задач переходим на вкладку "Пользователи".

    И там выделяем всех пользователей - либо мышкой, либо выделив самого верхнего пользователя, зажать кнопку Shift , а затем кнопку End .

    Нажимаем правой кнопкой по выделенным пользователям, и выбираем пункт "Отправить сообщение ".

    В появившемся окне набираем нужное сообщение. В строке "Заголовок " следует ввести текст, который будет отображаться в заголовке окна, а в поле "Сообщение " собственно само сообщение.

    И после этого нажать кнопку "Ок ". После этого у всех пользователей появится отправленное вами сообщение.

    Через командную строку

    Все это же самое можно проделать и через Командную строку, для этого выполняем в ней команду MSG:

    Msg * Внимание! В течении ближайших пяти минут произойдет перезагрузка сервера, обеспечивающего вашу работу.Приносим извинения за причененные неудобства.

    Проверьте, поддерживает ли система команду msg . Функционал этой команды во многом аналогичен функционалу неиспользуемой команды net send . Но эта команда работает только в профессиональной и корпоративной версиях Windows. Если вы работаете в Windows Домашняя, обновите систему до версии Профессиональная или Корпоративная, чтобы получить возможность пользоваться командой msg .

    • Чтобы узнать версию Windows, нажмите ⊞ Win + Pause или щелкните правой кнопкой мыши по «Компьютер» и выберите «Свойства». Версия Windows отобразится в разделе «Издание Windows».

    Откройте командную строку. Как и net send , команда msg запускается из командной строки. Командная строка запускается разными способами (в зависимости от версии Windows), или просто нажмите ⊞ Win и введите cmd.

    • Windows Vista/7: откройте командную строку из меню «Пуск».
    • Windows 8.1/10: щелкните правой кнопкой мыши по кнопке «Пуск» и выберите «Командная строка».
    • Windows 8: нажмите ⊞ Win + X и выберите «Командная строка».
  • Введите команду. Введите msg и нажмите Пробел . Далее нужно ввести информацию, которая содержит текст и направление сообщения.

  • Определите получателя сообщения. По сравнению с net send , команда msg обладает дополнительными опциями.

    • msg имя пользователя – введите имя конкретного пользователя.
    • msg сеанс – введите имя конкретного сеанса.
    • msg ID сеанса – введите идентификатор конкретного сеанса.
    • msg @ filename – введите имя файла, который содержит список имен пользователей, сеансов и/или идентификаторов сеансов. Полезно для отправки сообщений сотрудникам отделов.
    • msg * – сообщение будет отправлено всем пользователям, которые подключены к серверу.
  • Укажите сервер, пользователям которого нужно отправить сообщение (если хотите). Если нужно отправить сообщение пользователю, который подключен к другому серверу, после информации о получателе введите информацию о сервере. Если сервер не указан, сообщение будет отправлено на текущий сервер.

    • msg * /server: имя сервера
  • Задайте ограничение по времени (если хотите). Можно задать ограничение по времени, чтобы указать интервал ожидания подтверждения от получателя. Временной модификатор вводится после информации о сервере (если она есть).

    • msg * /time: секунды (например, 300 секунд для пятиминутного интервала)
  • Введите текст сообщения. После ввода различных параметров введите текст сообщения. Или нажмите ↵ Enter , и система предложит ввести текст сообщения в отдельной строке.

    • Например: msg @salesteam /server:EASTBRANCH /time:600 Поздравляю с увеличением продаж в этом квартале!
  • Отправьте сообщение. Для этого нажмите ↵ Enter . Адресат получит его немедленно.

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

    • "msg" is not recognized as an internal or external command, operable program or batch file. (msg не распознается в качестве внутренней или внешней команды, исполняемой программы или пакетного файла). В этом случае версия Windows не поддерживает msg . Обновите Windows до версии Профессиональная.
    • Error 5 getting session names (Ошибка 5 получение имен сеансов) или Error 1825 getting session names (Ошибка 1825 получение имен сеансов). Ошибка при общении с получателем. Можно попытаться устранить такую неполадку, если на компьютере получателя открыть редактор реестра (для этого выполните команду regedit), перейти в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server и изменить значение параметра «AllowRemoteRPC» с 0 на 1.


  • Понравилась статья? Поделиться с друзьями: