- Команда MSG – отправить сообщение пользователю.
- Справочная информация о команде net send
- Общие сведения о команде net send
- Использование команды net send
- Синтаксис команды net send
- Замечания по использованию команды net send
- Примеры использования команды net send
- Включение и отключение службы сообщений и net send
- Net send в Windows 7
- Отправка уведомлений с помощью командной строки, Оповещения с сервера на клиент с помощью командной строки
Команда 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 ) отображаются в окне с приглашением к регистрации в системе и могут быть доступны посторонним.
Справочная информация о команде net send
Общие сведения о команде net send
Net send это консольное приложение, входящее в состав некоторых версий Windows и предназначенное для отправки сообщений по локальной сети другому пользователю, компьютеру или псевдониму. Команда доступна только в Windows NT, 2000, XP, 2003 и недоступна в Windows 7, Vista, ME, 98, 95 и старше. В Windows XP начиная с Service Pack 2 команда net send по умолчанию отключена.
Использование команды net send
Для отправки собщений командой net send, запустите командный интерпретатор (командную строку). Чтобы запустить командный интерпретатор выберите пункт Выполнить из меню Пуск, наберите cmd и нажмите кнопку OK. Используете команду net c параметром send и другими параметрами в соответствии с синтаксисом команды. Служба сообщений отображает полученные сообщения в стандартном диалоговом окне сообщений Windows.
Синтаксис команды net send
username — имя пользователя, имя компьютера или псевдоним, которому требуется отправить сообщение;
* — отправка сообщений всем членам домена или рабочей группы;
/domain[:domainname] — отправка сообщения всем именам в домене компьютера или в домене domainname;
/users — отправка сообщения всем пользователям, подключенным к серверу;
message — текст сообщения.
Замечания по использованию команды net send
Возможны трудности при использовании длинных имен получателей сообщений. Имена, используемые службой сообщений, имеют длину до 15 знаков.
Предельная длина широковещательных сообщений составляет 128 знаков. Предельная длина персональных сообщений — 1600 знаков.
Примеры использования команды net send
net send ivanov Отправить сообщение по локальной сети можно командой net send
Чтобы отправить сообщение всем пользователям, подключенным к компьютеру, с которого отправляется сообщение, введите:
net send /users Всем немедлено выйти из 1С!
Чтобы отправить сообщение всем пользователям в домене ukmz введите:
net send /domain:ukmz Электричество в здании будет отключено через 5 минут
Чтобы отправить сообщение всем пользователям в домене компьютера, с которого отправляется сообщение, введите:
net send * Господа, совещание при генеральном директоре состоится в 13:00
Включение и отключение службы сообщений и net send
Для включения службы сообщений с помощью консоли MMC выполните следующую последовательность действий: Зайдите в Панель управления. Откройте папку Администрирование, Службы. Найдите в списке «Службу сообщений» (Messenger). Откройте окно свойств службы. Выберите значение ‘Авто’ из списка ‘Тип запуска’ если вы хотите чтобы служба автоматически запускалась при загрузке Windows. Затем нажмите кнопку Пуск. Нажмите кнопку ОК.
Для отключения службы сообщений выполните следующую последовательность действий: Зайдите в Панель управления. Откройте папку Администрирование, Службы. Найдите в списке «Службу сообщений» (Messenger). Откройте окно свойств службы. Выберите значение ‘Вручную’ из списка ‘Тип запуска’. Затем нажмите кнопку Стоп. Нажмите кнопку ОК.
Для включения службы сообщений из командной строки введите в командном интерпретаторе следующие команды:
sc config messenger start= auto
net start messenger
Для отключения службы сообщений из командной строки введите в командном интерпретаторе следующие команды:
net stop messenger
sc config messenger start= disabled
Net send в Windows 7
Sent — утилита для отправки net send сообщений из командной строки
Sent — это небольшая консольная утилита предназначенная для отправки net send сообщений по локальной сети с использованием командной строки. Утилита может быть использована как замена net send в тех версиях Windows, где эта команда отсутствует (Windows 7, Vista, 98, 95) или отключена либо просто как усовершенствованная команда net send c дополнительными возможностями.
Основные возможности:
•отправка сообщений по сетевому имени компьютера, имени пользователя (логину), псевдониму
•рассылка широковещательных сообщения по имени рабочей группы или домена
•отправка сообщения одновременно нескольким получателям
•пакетный режим с загрузкой списка получателей и сообщений из файла
•настройка таймаута для быстрой рассылки сообщений без зависаний на недоступных получателях
Для обмена сообщениями в Sent применяется полная реализация протокола, используемого для передачи сообщений такими программами как Microsoft WinPopup, служба сообщений Windows (команда net send) и т.п. Поэтому Sent полностью совместим с ними.
Sent предназначен только для отправки сообщений. Для приема отправленных сообщений вы можете использовать WinSent Messenger, WinSent Innocenti, службу сообщений Windows (net send), Microsoft Winpopup.
Sent работает во всех версиях Windows (7/Vista/XP/2000/NT/ME/98) включая Windows Vista и Windows 7, в которых служба сообщений и команда net send отсутствуют.
Отправка уведомлений с помощью командной строки, Оповещения с сервера на клиент с помощью командной строки
Часто возникает необходимость оповестить клиента о какой нибудь информации (Например о новом сформированном документе) с сервера. На данный момент, в типовых методах 1С нет возможности оповестить клиента с сервера, в основном существующие методы оповещения построены на принципе периодического «опроса» клиента на сервер. Проще говоря «обработчики ожидания». Многие разработчики используют обработчики ожидания, либо разрабатывают\используют внешние компоненты для реализации подобной задачи. Типовые механизмы: напоминания, уведомления, задачи . так же используют периодический зарос сервера на появление новых данных.
Далее будет показан пример, как отправить уведомление с сервера на клиент используя команду (командной строки Windows ) — MSG.
«Команда MSG существовала еще в Windows 2000/XP и предназначалась для обмена сообщениями между пользователями вошедшими в систему локально и пользователями терминальных сессий ( подключившихся к удаленному рабочему столу ) . В Windows Vista и более поздних операционных системах семейства Windows команда MSG стала основным стандартным средством обмена сообщениями, поскольку команда net send в данных ОС больше не поддерживается.»
Для примера возьмем небольшой код использования данного механизма:
В примере рассматривается отправка уведомления Бухгалтеру.
Данную команду так же можно использовать для отправки уведомления пользователям локальной сети, как выборочно так и всем сразу.
Параметры MSG и Возможные ошибки:
Нынешняя реализация 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 ) отображаются в окне с приглашением к регистрации в системе и могут быть доступны посторонним.
К данной статье прикреплена обработка для отправки уведомления. Обработка тестировалась на конфигурации ЗУП (3.1.9.108).
Универсальная, подходит конфигурациям на управляемых формах.