Не работает команда msg

Я не могу использовать команду msg в cmd (или пакет, если на то пошло). Как я могу это исправить?

Пока в cmd или создании командного файла я не могу использовать команду msg . Когда я пытаюсь использовать его, он возвращает ошибку msg is not recognized as an internal or external command, operable program or batch file . “Я уверен, что ошибка в том, что я потерял msg.exe в system32, так что может кто-нибудь показать, как это получить? Я запускаю Windows 8.1.

msg.exe не доступен на всех платформах Windows во всех средах.

Существует только %SystemRoot%\System32\msg.exe (64-разрядная %SystemRoot%\SysWOW64\msg.exe ), но нет %SystemRoot%\SysWOW64\msg.exe (32-разрядная версия) для Windows 7 x64 Enterprise, из-за чего необходимо получить доступ к 64-разрядному msg.exe из в 32-битном командном процессе, используя %SystemRoot%\Sysnative\msg.exe .

Дополнительные сведения о System32 , SysWOW64 и Sysnative см. В статье Microsoft о Sysnative файловой системы

Для запуска пакетного файла на 32-разрядной Windows необходимо запустить %SystemRoot%\System32\msg.exe .

Командный файл, выполняемый в 64-разрядной Windows 64-разрядным cmd.exe должен запускать %SystemRoot%\System32\msg.exe .

Командный файл, выполняемый в 64-разрядной Windows 32-разрядным cmd.exe должен запускать %SystemRoot%\Sysnative\msg.exe .

Читайте также:  Как настроить ксс для хорошей стрельбы

Это зависит от ширины битов родительского процесса, начиная с cmd.exe или командного файла, который неявно приводит к запуску cmd.exe для исполнения командного файла, если пакетный файл выполняется в 32-разрядной или 64-разрядной среде на 64-битной Windows,

Таким образом вызывается пакетный файл с использованием явно %SystemRoot%\Sysnative\cmd.exe из 32-разрядного приложения в Windows x64 или внутри пакетного файла %SystemRoot%\Sysnative\msg.exe используется на машине Windows x64 во время работы необходимо использовать Windows x86 %SystemRoot%\System32\cmd.exe %SystemRoot%\System32\msg.exe .

Демо-пример для первого варианта с использованием 64-разрядного интерпретатора командной строки:

Пакетный файл с именем MsgDemo.bat :

вызывается из 32-разрядного процесса, выполняющегося в Windows x64, с:

Демо-пример для второго варианта с правильной ссылкой msg.exe :

Редиректор %SystemRoot%\Sysnative не существует для 64-битных процессов, только для 32-битных процессов.

%SystemRoot%\Sysnative не является каталогом. Поэтому, if exist %SystemRoot%\Sysnative не работает, просто if exist %SystemRoot%\Sysnative\* .

Источник

Команды терминала Server: MSG

В этой статье вводится синтаксис и параметры команд msG Terminal Server.

Применяется к: Windows 10 — все выпуски
Исходный номер КБ: 186480

Сводка

MSG отправляет сообщение.

Синтаксис

Параметры

username : Идентифицирует пользователя.

sessionname : Определяет имя сеанса. Имя было создано системным администратором при настройке сеанса.

sessionID : Указывает ID сеанса.

filename : Определяет файл, содержащий список usernames , и к которому отправить sessionnames sessionIDs сообщение.

message (строка сообщений): текст сообщения, которое необходимо отправить. Если сообщение не вступило, для сообщения считыется стандартный ввод (STDIN).

/server:servername : Позволяет задан терминальный сервер. В противном случае используется текущий сервер терминала.

/time:seconds (задержка времени): задает время, которое необходимо подождать до получения подтверждения от целевого сеанса о том, что сообщение получено.

/w (подождите). Подождите ответа от целевого пользователя(ы).

/v (подробно): отображает сведения о выполняемых действиях.

/? (справка). Отображает синтаксис команды и сведения о параметрах команды.

Ограничения безопасности

Пользователь должен иметь разрешение на доступ к сообщению для сеанса.

Дополнительные замечания

Если пользователь или сеанс не указан, msg отображает сообщение об ошибке. Если вы указываете имя сеанса, он должен определить активный сеанс. Для параметров можно использовать поддиальды. Если присутствует одна подсистема (*), она указывает всех пользователей в системе.

Примеры

Отправить сообщение под названием Falafel? для всех сеансов для пользователя MIKES введите:

Чтобы отправить сообщение на сеанс MODEM02, введите:

Чтобы отправить сообщение на сеанс 12, введите:

Чтобы отправить сообщение на все сеансы, содержащиеся в списке userLIST файла, введите:

Отправка текста в файл MSG. DAT в качестве сообщения для всех сеансов для имени пользователя TERRYJ введите:

Чтобы отправить сообщение всем зарегистрированным пользователям, введите:

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

Сообщения не стоят в очереди на экране Клиента. Может быть полезно использовать TIME: параметр, чтобы начальные сообщения истекли и были заменены новыми сообщениями.

Источник

MSG не является внутренней или внешней командой — именно из пакетного файла

Почему команда MSG из под интерпретатора работает нормально (ПУСК -> Выполнить -> CMD), а
из под CMD-файла выдает: «MSG не является внутренней или внешней командой, исполняемой программой или пакетным файлом»?

Какие варианты только не пробовал (с расширенной обработкой и без нее):

Здесь строка № 1 — опционально (пробовал с ней и без нее).
Строки 2,3,4 — альтернативы.

Все работает только при ручном наборе в ком. строке.

P.S. OS Win7 x64 Ultimate ru

Вложения

test.zip (279 байт, 69 просмотров)

«»msg» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.»
В общем задача , сделать .BAT который при открытии выкинет тебе окно типа «Error» . В котором будет.

Else не является внутренней или внешней командой
Здравствуйте, недавно захотелось создать батник по оптимизации ПК(я в этом деле новичок, не судите.

Не является внутренней или внешней командой
Подскажите, из-за чего возникает проблема с «любая команда bat» не является внутренней или внешней.

Python не является внутренней или внешней командой
Добавил в переменную path путь к питону, точнее к скриптам, но ничего не выходит, кс до сих пор.

Источник

Windows 10 MSG команда загадка

Я опытный пользователь Windows с давних времен. Мой главный компьютер — Windows 7 Pro. Мы купили новый компьютер для нового офиса; на нем, конечно, установлена Windows 10 (Home). Я работал над новым ПК и хотел отправить результат того, что я делал — IPv6-адрес принтера — обратно на ПК с Win 7. Я хотел использовать NET SEND но это не доступно на Win 10 (или Win 7, как оказалось).

Исследования показали, что команда MSG должна (вроде) делать то, что NET SEND делала в старые времена. Пример веб-сайта показал окно командной строки с текущим каталогом C:\WINDOWS\SYSTEM32 и показал результат MSG /? давая синтаксис команды — как раз то, что я хотел.

Но работает MSG /? на коробке Win 10 сказано, что MSG не был распознан как команда. (Это работает на Win 7, с MSG.EXE в SYSTEM32.) Немного покопавшись нашел MSG.EXE в директории под WinSxS —

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

Я проверил «Программы» (что раньше называлось «Программы и компоненты») и не увидел в нем что-то, что я мог установить.

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

Спасибо за любую помощь.

3 ответа 3

Вы, очевидно, используете на всех компьютерах версию Home. Эта версия не включает команду MSG. Команда доступна только в версиях Windows, начиная с Pro.

В качестве дополнительного замечания, протестированного на Windows Enterprise, даже старая команда «net send» все еще существует в этой версии.

Судя по всему, попытка трансплантировать msg.exe из более высоких версий Windows в Home не работает, поэтому нет простого обходного пути.

Однако вы можете написать свой собственный.

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

Самые изящные, которые я нашел, были:

mshta.exe , модуль времени выполнения для HTML-приложений Windows .hta , принимает общий URL-адрес в качестве аргумента командной строки, включая URL-адрес javascript: protocol. Таким образом, вы можете выдать предупреждение с тайм-аутом в 10 секунд следующим образом:

Использование файла VBScript и вызов его с использованием CScript, например, в файле .vbs :

Запуск MSG /? на коробке Win 10 сказано, что MSG не был распознан как команда

Мы купили новый компьютер для нового офиса; на нем, конечно, установлена Windows 10 (Home).

Домашние выпуски Windows не включают msg

Какие другие команды должны сделать то же самое волшебство, чтобы они работали из обычной командной строки?

Этот вопрос «слишком широкий».

Программа MSG доступна только в Pro или Enterprise версиях Windows.
Его главная цель — уведомлять пользователей на терминальном сервере или подобных вещах. Он требует определенных прав, обычно доступных только администраторам (обычному пользователю может быть предоставлено право его использовать), что означает, что его основное предназначение — использование администраторами Windows для уведомления пользователей о завершении работы, проблеме и т.д.

Источник

Отправка сообщений с помощью 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, но здесь есть простая настройка отображения шрифтов (правой кнопкой мышки в верхнем левом углу и выбор пункта «Свойства»)

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

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

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

Источник

Оцените статью