Загадка команды MSG в Windows 10

Загадка команды MSG в Windows 10

Я старый опытный пользователь 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 —

C:\Windows\WinSxS\amd64_microsoft-windows-t..commandlinetoolsmqq_31bf3856ad364e35_10.0.17134.1_none_0ea9fdb9152f846c

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

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

Что происходит? Как мне сделать это пригодным для использования? Какие еще команды должны иметь такую ​​же магию, чтобы они работали из обычной командной строки?

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

решение1

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

Кстати, протестировано на Windows Enterprise: даже старая команда «net send» все еще существует в этой версии.

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

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

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

Смотреть пост Показать всплывающее окно/окно сообщения из пакетного файла Windows для нескольких идей.

Самые классные из тех, что я нашел:

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

    mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'Message!', 10, 'Title!', 64 );close()"
    
  • Используем файл VBScript и вызываем его с помощью CScript, примерно следующим образом .vbs:

    Set objArgs = WScript.Arguments
    messageText = objArgs(0)
    MsgBox messageText
    

решение2

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

Подпапка внутри WinSxS взята из Центра обновления Windows. Microsoft называет эту папку «Хранилище компонентов», и более подробную информацию о ней можно найти в этой статье:
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/manage-the-component-store
Мне удалось найти ту же папку с msg.exe в моей системе. Глядя на него, кажется, что это вообще не допустимый файл .exe, он начинается с "DCS" при просмотре в шестнадцатеричном редакторе, но должен начинаться с "MZ", если это исполняемый файл. Я не смог найти никакой документации об этом заголовке "DCS".

Альтернативой может быть простая отправка письма и открытие его в вашем веб-почтовом клиенте, если оба компьютера имеют доступ к Интернету. Windows 7 и 10 также имеют функцию, предлагающую помощь другим людям, ее можно открыть, запустив msra.exe. Если этот метод не работает, вы можете использовать другие инструменты удаленного управления, такие какTeamviewerTeamviewer имеет возможность использовать только локальные соединения, что означает, что для его использования в локальной сети не требуется подключение к Интернету.

решение3

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

Мы купили новый ПК для нового офиса. На нем, конечно же, установлена ​​Windows 10 (Home).

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

ИсточникMsg - Windows CMD - SS64.com

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

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

решение4

Это не моя оригинальная идея... но вот что я делаю, как я использую vbs, но не совсем... (файл автоматически удаляется)

echo x=msgbox("Hey! Here is a message!" ,4096, "Hey! Here is a title!") > %tmp%\tmp.vbs && cscript //nologo %tmp%\tmp.vbs & del %tmp%\tmp.vbs

Ссылаться наэтототвечать

Связанный контент