Как вывести сообщение на экран windows 10

При старте Windows 10 традиционно сначала загружается экран блокировки, а затем экран входа в систему с формой ввода пароля. Если хотите, можете включить отображение ещё одного экрана, на котором станет отображаться произвольный текст для приступающих к работе пользователей. Эта функция далеко не

При старте Windows 10 традиционно сначала загружается экран блокировки, а затем экран входа в систему с формой ввода пароля. Если хотите, можете включить отображение ещё одного экрана, на котором станет отображаться произвольный текст для приступающих к работе пользователей. Эта функция далеко не нова, она, если не ошибиться, присутствовала ещё в Windows 2000 и была унаследована всеми последующими версиями системы.

Как добавить на экран свое сообщение при входе в Windows 10

Активировать её можно двумя способами: через реестр и через оснастку «Локальная политика безопасности».

Способ №1 

Для начала реестр. Откройте его командой regedit и перейдите в следующее расположение:

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System

В правой колонке вам нужно создать два строковых параметра legalnoticecaption и legalnoticetext. Если они уже существуют, прекрасно, это только упростит дело. В этом случае они окажутся пустыми. В качестве значения первого параметра укажите заголовок вашего сообщения, а в качестве значения второго — основной текст.

Чтобы увидеть результат, выйдите и заново войдите в систему или перезагрузитесь.

Сообщение появится сразу после экрана блокировки, но до загрузки экрана входа в систему. Цвет фона будет использоваться текущий системный, наличие или отсутствие пароля пользователя роли не играет.

Если в будущем вы захотите отключить сообщение, удалите параметры legalnoticecaption и legalnoticetext или просто очистите поля с их значениями.

Способ №2 

Вместо Regedit можно воспользоваться встроенной утилитой управления локальными политиками безопасности. Запустите её командой secpol.msc, слева перейдите по цепочке Локальные политики → Параметры безопасности,

справа найдите настройки «Интерактивный вход в систему: заголовок сообщения для пользователей…» и «Интерактивный вход в систему: текст сообщения для пользователей…», щёлкните дважды по каждому из них мышкой и введите требуемый заголовок и текст.

Для отмены очистите поля обеих указанных политик.

Приложения могут показывать предупреждения, когда они требуют внимания пользователя, например, предупреждение «Вы хотите сохранить изменения» при попытке закрыть файл Блокнота с несохраненными изменениями. Они также могут отображать сообщения, например, когда файл загружен или обработан.

Эти сообщения полезны, но они не обязательно должны исходить из приложения. Пользователи могут отображать настраиваемое окно сообщения в Windows 10 с помощью пакетного сценария, сценария PowerShell или путем выполнения команды в командной строке или PowerShell.

Нужно показать всплывающее уведомление? Используйте модуль PowerShell.

У настраиваемого окна сообщения будет заголовок, сообщение и кнопка призыва к действию, то есть кнопка ОК, которая отклонит сообщение.

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

1. Пакетный скрипт / PowerShell для отображения окна сообщения

Следуйте инструкциям ниже, чтобы создать сценарий.

  1. Открыть новый Файл блокнота (или используйте любой текстовый редактор по вашему выбору).
  2. Вставьте следующее в файле Блокнота.
@echo off

powershell -Command "& {Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.MessageBox]::Show('My Message', 'Message title', 'OK', [System.Windows.Forms.MessageBoxIcon]::Information);}"
  1. Если вы собираетесь использовать сценарий PowerShell, удалить первую строку: @echo off.
  2. Отредактируйте скрипт как показано ниже:
    • Заменять ‘Мое сообщение‘с сообщение, которое вы хотите окно сообщения, которое нужно показать.
    • Заменять «Заголовок сообщения» с заголовок окна сообщения ты хочешь.

Пример:

@echo off

powershell -Command "& {Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.MessageBox]::Show('Go to the reactor room', 'Reactor Meltdown', 'OK', [System.Windows.Forms.MessageBoxIcon]::Information);}"
  1. Сохранить файл с .bat расширение для пакетного скрипта или .расширение ps1 для сценария PowerShell.
  2. Запустить сценарий и сообщение появится окно.

2. Командная строка или PowerShell — окно сообщения

Показать окно сообщения из командной строки или из PowerShell очень просто. Вам не нужны права администратора для отображения окна сообщения.

Командная строка

  1. Открыть Командная строка.
  2. Запустить следующая команда в этом.
  3. Отредактируйте команду как показано ниже, чтобы задать собственное сообщение и заголовок.
    • Заменять «Мое сообщение» с желаемым сообщением окно сообщения, которое нужно показать.
    • Заменять «Заголовок сообщения» с нужным заголовком. окно сообщения, которое нужно иметь.
@echo off

powershell -Command "& {Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.MessageBox]::Show('My Message', 'Message Title', 'OK', [System.Windows.Forms.MessageBoxIcon]::Information);}"

PowerShell

  1. Открыть PowerShell.
  2. Выполните следующую команду.
  3. Отредактируйте команду чтобы добавить собственное сообщение и заголовок.
    • Заменять «Мое сообщение» с сообщением, которое вы хотитеt окно сообщения, которое нужно показать.
    • Заменять «Заголовок сообщения» с нужным заголовком. окно сообщения, которое нужно иметь.
powershell -Command "& {Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.MessageBox]::Show('My Message', 'Message Title', 'OK', [System.Windows.Forms.MessageBoxIcon]::Information);}"

Несколько способов отобразить сообщение из командной строки

  • Содержание статьи
    • Использование echo
    • Использование msg
    • Использование mshta
    • Использование PowerShell
    • Добавить комментарий

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

Использование echo

В данном примере мы рассмотрим использование команды echo, которая просто выводит в окне командной строки текст. Используя её совместно с командной start можно добиться появления отдельного окна командной строки с заданным текстом.

Вот так будет выглядеть пример, выводящий сообщение «Привет мир!» в командной строке.

start cmd /c "echo Привет мир! && pause"

Дополнив пример выше несколькими дополнительными командами и пробелами, сделаем более «красивый» вариант с отображением текста в командной строке:

start "" cmd /c "echo(&echo(&echo              Привет мир!     &echo(&pause>nul"

Использование msg

Программа msg поставляется вместе с Windows еще со времен версий Windows 2000 и Windows XP, и предназначена для передачи сообщений от одного пользователя другому пользователю. Она предлагает простые возможности по выводу сообщения, и так же проста в использовании.

В качестве примера, выведем сообщение «Привет мир!»:

msg %username% "Привет мир!"

Использование mshta

Mshta — программа, предназначенная для запуска приложений формата hta, которые представляют из себя программы, написанные с использованием HTML, CSS, JavaScript и VBScript. В данном случае, нам пригодиться возможность выполнения команд, написанных на языке JavaScript и VBScript. Используя знания данных языков, можно выводить сообщения.

Сперва рассмотрим возможности использования скриптового языка VBScript совместно с mshta.

Выведем сообщение «Привет мир!»:

mshta vbscript:Execute("msgbox ""Привет мир!"":close")

Добавим в наше сообщение заголовок «Пример»:

mshta vbscript:Execute("msgbox ""Привет мир!"",0,""Пример"":close")

Сделаем так, чтобы в сообщении были различные значки. Начнем со значка с ошибкой:

mshta vbscript:Execute("msgbox ""Привет мир!"",16,""Заголовок"":close")

Сменим его на вопросительный знак:

mshta vbscript:Execute("msgbox ""Привет мир!"",32,""Заголовок"":close")

Или, на значок информации:

mshta vbscript:Execute("msgbox ""Привет мир!"",48,""Заголовок"":close")

Теперь рассмотрим возможности mshta с JavaScript.

Отобразим сообщение «Привет мир!»:

mshta javascript:alert("Привет мир!");close();

Выведем сообщение, состоящее из нескольких строк:

mshta javascript:alert("Привет мир!nИ снова привет мир!nnВсе еще привет мир!");close();

Использование PowerShell

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

powershell [Reflection.Assembly]::LoadWithPartialName("""System.Windows.Forms""");[Windows.Forms.MessageBox]::show("""Привет мир!""", """Пример""")

Экран входа в систему — это первое, что вы видите при загрузке системы или переключении на другую учетную запись. Это не лучшее место для размещения списка покупок, но неплохое место для важного напоминания или полезной информации. Единственная проблема в том, что вы не можете просто добавить настраиваемое сообщение на экран блокировки в Windows 10. Для этого вам нужно перепрыгнуть через несколько шагов. В Windows 10 нет инструмента или даже специальной настройки для этого. Ваше решение заключается в редакторе реестра Windows. Вам нужно будет настроить две клавиши или, возможно, даже создать их, чтобы добавить настраиваемое сообщение экрана блокировки в Windows 10. Вот что вам нужно сделать.

Мы настоятельно рекомендуем сделать резервную копию реестра Windows, прежде чем продолжить. Этот прием безопасен, но вы никогда не ошибетесь с резервным копированием.

Редактировать реестр Windows

После резервного копирования реестра перейдите в следующее место;

HKEY_LOCAL_MACHINE > Software > Microsoft > Windows > Current Version > Policies > System

В системной папке будут два ключа, которые называются «legalnoticecaption» и «legalnoticetext». Если вы не видите этих двух ключей, вам придется их создать. Щелкните правой кнопкой мыши системную папку и выберите «Создать»> «Многострочное значение». Создайте два значения и назовите их «legalnoticecaption» и «legalnoticetext» с уважением.

Затем вам нужно ввести значение, известное как сообщение. Значение, которое вы даете этим ключам, станет сообщением. В частности, значение, которое вы даете «legalnoticecaption», станет заголовком. Значение, которое вы даете «legalnoticetext», будет сообщением.

Дважды щелкните «legalnoticecaption» и введите заголовок своего сообщения, например, предупреждение или предупреждение.

Затем дважды щелкните кнопку «Legalnoticetext» и введите свое сообщение в поле даты валютирования.

Как только вы закончите, перезагрузите компьютер.

Просмотр сообщения на экране блокировки

Сообщение на экране блокировки появится при загрузке Windows 10. Это будет первое, что вы увидите, прежде чем увидите экран входа в систему. Сообщение также появится при переключении учетных записей пользователей после загрузки в Windows 10. Например, если у вас есть две учетные записи пользователей, настроенные на одном ПК, вы увидите сообщение при переключении с одной на другую.

Сообщение всегда будет появляться перед экраном входа в систему. Он не закрывается автоматически. Вам нужно нажать клавишу Enter или нажать «ОК» в сообщении, чтобы закрыть его. Это фактически добавляет дополнительный шаг к входу в ваш компьютер. Сообщение не появится, если вы заблокируете рабочий стол, а затем вернетесь к нему позже.

Что вы думаете об этой статье?

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

 сообщение при входе в Windows 10.

Возможность показа такого сообщения не является новой функцией Windows 10. Данная функция была доступна еще в Windows 2000, примерно 19 лет назад. Windows 10 унаследовала эту функцию от предыдущих версий Windows. Показ сообщения во время входа в систему может быть активирован как, с помощью настройки реестра, так и с помощью редактора локальных групповых политик. В этой статье мы рассмотрим оба способа.

Вот несколько вещей, которые вам нужно знать. Сообщение которое вы создаете, будет показано при входе, при запуске или после выхода из системы. Оно отображается после экрана блокировки, но до загрузки рабочего стола. Цвет фона экрана сообщения будет таким же как цвет фона выбранный в «Параметры» →  «Персонализация» →  «Цвета».

Чтобы показать сообщение при входе в Windows 10, выполните следующие действия.

  1. Откройте редактор реестра. см. как
  1. Перейдите к следующему ключу реестра:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem

Если у вас нет такого раздела, просто создайте его.

  1. Здесь измените или создайте новый строковой параметр (REG_SZ) legalnoticecaption. Задайте свое значение в виде нужного заголовка сообщения. См скрин.

Заголовок сообщения Windows 10

  1. Теперь создайте или измените строковой параметр с именем  legalnoticetext. Наберите нужный текст сообщения, который вы хотите видеть в строке значение.

 Текст сообщения для входа в Windows 10

  1. Перезапустите Windows 10 чтобы увидеть созданное вами сообщение.

Установка для строковых параметров пустых значений приведет к удалению сообщения.

Все!

Если вы используете версию Windows 10 Pro, Enterprise или Education, вы можете использовать приложение «Локальная политика безопасности», чтобы настроить параметры, упомянутые выше, с помощью графического интерфейса.

Добавить сообщение с помощью «Локальной политики безопасности».

  1. Нажимайте клавиши Win + R и введите: secpol.msc и нажмите Enter.
  2. Будет открыта локальная политика безопасности. Перейдите в «Локальные политики» →  «Параметры безопасности».
  3. Справа найдите и откройте опцию «Интерактивный вход в систему: Заголовок сообщения для пользователей при входе в систему.» Этот параметр безопасности позволяет указать заголовок окна, содержащего сообщение.

Windows 10 Укажите заголовок сообщения

  1. Введите Желаемый заголовок сообщения.
  1. Откройте параметр «Интерактивный вход: текст сообщения для пользователей при входе в систему» и введите текст сообщения для пользователей, пытающихся войти в систему.

Windows 10 Укажите текст сообщения

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

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

  1. Теперь перезапустите ОС, чтобы увидеть сообщение.

Вот и все.

Как вывести на экран сообщение

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

Как вывести на экран сообщение

Вам понадобится

  • Операционная система Windows XP или более новая.

Инструкция

Чтобы вывести на экран сообщение, в операционной системе Windows достаточно написать маленький скрипт на языке Visual Basic. Создайте текстовый файл script.txt. Название и местоположение файла значения не имеют. Откройте файл в любом текстовом редакторе. Введите строку: «MsgBox «текст сообщения»» (без кавычек «елочек», но с кавычками «штрихами»). Сохраните файл и закройте текстовый редактор. Смените расширение файла на *.vbs. Иконка должна измениться. Теперь операционная система воспринимает этот файл не как текстовый, а как набор команд, который выполняется встроенным в Windows интерпретатором Visual Basic. Этот компонент присутствует во всех операционных системах этого семейства, начиная с XP, что позволяет запустить скрипт на любом компьютере. При запуске этот скрипт выведет сообщение в окне. Текст в кавычках может быть любым.

Альтернативой VBS скрипту является написание Java Script. Язык Java сложнее, но написанный на нем скрипт можно запустить не только на операционных системах Windows, но и на многих других. Создайте текстовый файл, откройте его в редакторе и введите строку «WScript.Echo(«текст сообщения»);». Внешние кавычки вводить не нужно, а вот если не ввести внутренние (те, в которые заключен текст) скрипт работать не будет. Смените расширение файла на *.js. Запустите файл на выполнение. В результате будет выведено окно, точно такое же, как при написании программы на Visual Basic.

Существует еще один способ вывода сообщений — с помощью команды net send. Плюсом и отличительной особенность данного метода является то, что сообщение можно отправить на любой компьютер в локальной сети. На клавиатуре нажмите одновременно клавиши win+r, в открывшемся окне введите строку cmd и нажмите Enter. Откроется окно ввода команд. В нем напишите «net send имя компьютера сообщение» (без кавычек) и нажмите Enter. Указанный компьютер выведет сообщение практически так же, как если бы оно было сгенерировано с помощью скрипта на локальной машине. Учтите, что в нем будет указан обратный адрес. Вместо имени компьютера-получателя сообщения можно указать IP адрес.

Войти на сайт

или

Забыли пароль?
Еще не зарегистрированы?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Powershell может использовать классы .NET. Один из таких классов, NotifyIcon, может выводить привычный баннер в нижней части экрана. В этой статье будет рассмотрен способ создания такого баннера с вашим текстом, а так же разные варианты его использования.

В итоге этой статьи можно будет создать баннер с похожим уведомлением:

Используем BalloonTipIcon в Powershell

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

Где можно использовать

Обычно такие баннеры можно видеть при обновлении, освобождении места, почтовые уведомления и т.д. Учитывая, что Powershell хорошо интегрирован с серверными ролями — такой баннер может отлично подойти под разные мониторинги сервисов. Например вы можете проверять заблокированных пользователей и выводить их если это произошло.

Сложность, с которой я столкнулся, связана с удаленным выполнением такого скрипта средствами Powershell (WinRM). Вывод каких либо окон у удаленного пользователя, используя Powershell и .NET, задача не такая простая.

Самый простой и интересный способ выводить такие окна массово — использование REST. В предыдущих статьях был пример создания такого сервиса на Pode.

Если баннер у вас не выводится — возможно у вас отключены уведомления. В моем случае причиной оказалось следующая настройка, но она не единственная которая может повлиять на вывод:

Включение уведомлений в Windows

Создание баннера

Первым делом мы должны импортировать класс «System.Windows.Forms» через Add-Type. Без этой команды у вас может появиться ошибка. Далее мы создаем объект (копию/инстанс) из класса ‘NotifyIcon’:

Add-Type -AssemblyName System.Windows.Forms

$banner = New-Object System.Windows.Forms.NotifyIcon

После создания объекта баннера — нам нужно указать у него 4 свойства:

  • Icon — иконка, которая будет отображаться вместе с баннером;
  • BalloonTipIcon  — уровень уведомлений: ошибка (Error), предупреждение (Warning), уведомление (Info) или None;
  • BalloonTipText — текст, который будет выводиться в баннере;
  • BalloonTipTitle — заголовок в баннере;
  • Visible — отображение;

Иконку можно указать 2-мя способами: указав прямой путь до файла с расширением ‘*.ico’ или скопировать ее у одного из приложений:

# импортируем класс для иконки
Add-Type -AssemblyName System.Drawing

# 1) Указываем путь до существующей картинки формата '.ico'
$ico = 'G:banner.ico'
$banner.Icon = New-Object System.Drawing.Icon($ico)

# 2) или вытаскиваем иконку с существующего приложения
# (в данном примере Powershell)
$ico = "$env:WINDIRsystem32WindowsPowerShellv1.0powershell.exe"
$banner.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($ico)

Так же объявим остальные свойства описанные выше:

# Уровень сообщения
$banner.BalloonTipIcon  = [System.Windows.Forms.ToolTipIcon]'Info'
$banner.BalloonTipTitle = 'Заголовок'
$banner.BalloonTipText  = 'Наше сообщение'
# будет ли выводится баннер
$banner.Visible = $true

Для вызова баннера используется метод «ShowBalloonTip», в котором нужно указать длительность отображения баннера. В примере ниже стоит 200 миллисекунд. По истечении этого времени баннер исчезнет:

$banner.ShowBalloonTip(200)

Вывод баннера в Powershell

Скрытие иконки

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

Правильным способом скрытием иконки будет вызов метода ‘dispose’, который предназначен именно для этого. Этот метод будет вызываться при событии (тригере) в виде двойного нажатия на иконку в трейе.

Событие создается с помощью ‘Register-ObjectEvent’. В нем мы должны указать объект (NotifyIcon), событие на которое необходима реакция (двойное нажатие мышки) и название. При нажатии мы выполняем блок прописанный в ‘Action’:

Add-Type -AssemblyName System.Windows.Forms

if (-NOT $banner) {
    $banner = New-Object System.Windows.Forms.NotifyIcon
    [void](Register-ObjectEvent -InputObject $banner -EventName MouseDoubleClick -SourceIdentifier BannerClick -Action {
        # При двойном клике удаляем все созданные объекты
        $banner.dispose()
        Unregister-Event -SourceIdentifier BannerClick
        Remove-Job -Name BannerClick
        Remove-Variable -Name banner
    })
}

# ...
# Остальной код
# ...

Альтернативно можно закрыть баннер вызвав метод «$banner.dispose()» в конце скрипта, но в этом случае иконка вместе с сообщением пропадет полностью после указанного времени.

Готовая команда

Целый скрипт находится на GitHub. Его можно использовать разными способами. Вы можете поместить его в папку с модулями или импортировать:

Import-Module "F:powershellbannerInvoke-Banner.ps1"

Варианты использования:

# информационное сообщение
Invoke-Banner -Title 'Заголовок' -Text 'Простое информационное сообщение'

# вывод ошибки
Invoke-Banner -Title 'Заголовок' -Text 'Ошибка' -Type Error

# указываем длительность работы баннера и свою иконку
Invoke-Banner -Title 'Заголовок' -Text 'Простое информационное сообщение' -Type Error -Duration 700 -Icon "G:banner.ico"

Использование команды Invoke-Banner в Powershell

Дополнительные возможности

Сам класс ‘NotifyIcon’ предназначен не только для вывода баннера. Основная работа класса связана с взаимодействием с иконкой.  К этой иконке можно привязать контекстное меню и вызвать какие-то другие функции. Для примера возьмем команды, которые выведут список процессов в GUI:

Get-Process | Out-GridView

Вывод процессов с Powershell в GUI

Мы можем создать контекстное меню с вызовом этой команды. Для этого добавим следующий код к предыдущему скрипту:

    $banner.BalloonTipText  = $Text
    # --- предыдущий код ---
    # создаем объект с меню
    $menu = New-Object System.Windows.Forms.ContextMenuStrip
    # создаем кнопку с названием
    $exit = $menu.Items.Add('Вывод процессов')
    # привязываем событие, которое сработает при нажатии на кнопку
    $exit.add_Click({ 
        Get-Process | Out-GridView
        # Закрытие работы приложения
        $appContext.ExitThread()
    })
    # привязываем меню к кнопке
    $banner.ContextMenuStrip = $menu
    $banner.Visible = $true
    $banner.ShowBalloonTip($Duration)
    # запускаем как приложение
    $appContext = New-Object System.Windows.Forms.ApplicationContext
    [void][System.Windows.Forms.Application]::Run($appContext)

}

Создание кнопки в Powershell в GUI

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

Add-Type -AssemblyName System.Windows.Forms
$banner = New-Object System.Windows.Forms.NotifyIcon
$banner | Get-Member

NotifyAction это класс .NET и вы можете почитать документацию для поиска других применений.

Использование удаленно

Вызывать подобный скрипт удаленно, используя WinRM (PSRemoting), не получится. Это связано с разными сеансами, в которых работает сам пользователи и Powershell. Если вы ищете простой вариант вывода сообщений удаленно — вам может больше подойти статься по программе msg и ее использование в Powershell, которая работает в этом случае исправно.

Можно использовать программу ‘psexec’ от SysInternals, но это так же достаточно сложный процесс. В первую очередь мы должны узнать номер сессии в которой работает пользователь. Самый простой способ сделать это — использовать ‘quser’:

# локально
quser

# удалено
quser /server:localhost

О quser и другие способах подключения описывалось в предыдущих статьях. Удаленный вариант, с quser, сработает только в том случае, если вы являетесь привилегированным пользователем для подключения к удаленному компьютеру. Использовать эту команду с WinRM, скорее всего, приведет к проблемам с кодировками. Из результата работы команды вам нужно значение с ID. 

Имея этот идентификатор и скаченную утилиту ‘psexec’, вы сможете запустить командлет следующим образом:

$module_path = "C:banner.ps1"
$command = "Invoke-Banner -Title Hello -Text World"
$session_id = 2

.PsExec64.exe -s -i $session_id \192.168.2.111 -u domainадминистратор -p пароль /accepteula cmd /c "powershell -command Import-Module $module_path; $command"

Пример, который я сделал для видео:

Теги:

#powershell

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

Самый простой способ вывести окошко с произвольным тестом через подсистему сценариев Windows – Wscript.

Следующий код выведет обычное текстовое окно с необходимым текстом и кнопкой OK.

$wshell = New-Object -ComObject Wscript.Shell
$Output = $wshell.Popup("Скрипт формирования отчета выполнен")

Wscript.Shell вывод уведомлений в POwershell

С помощью различных свойств метода Popup вы можете настроить вид модального окна сообщения. В том числе можно вернуть в скрипт результаты ответа пользователя на вопрос (Да / Нет).

$wshell.Popup

$Output = $wshell.Popup("Скрипт формирования отчета завершен! Хотите вывести его на экран?",0,"Отчет готов",4+32)

Общий синтаксис и параметры метода Popup:

Popup(<Text>,<SecondsToWait>,<Title>,<Type>)

Параметры:

  • <Text> — строка, текст сообщения.
  • <SecondsToWait> — необязательный, число. Количество секунд, по истечении которого окно будет автоматически закрыто.
  • <Title> — необязательный, строка. Текст заголовка окна сообщения.
  • <Type> — необязательный, число. Комбинация флагов, определяет тип кнопок и значка. Возможные значения флагов:
    • 0 — кнопка ОК.
    • 1 — кнопки ОК и Отмена.
    • 2 — кнопки Стоп, Повтор, Пропустить.
    • 3 — кнопки Да, Нет, Отмена.
    • 4 — кнопки Да и Нет.
    • 5 — кнопки Повтор и Отмена.
    • 16 — значок Stop.
    • 32 — значок Question.
    • 48 — значок Exclamation.
    • 64 — значок Information.

Описание: возвращает целое значение, с помощью которого можно узнать, какая кнопка была нажата пользователем. Возможные значения:

  • -1 — таймаут.
  • 1 — кнопка ОК.
  • 2 — кнопка Отмена.
  • 3 — кнопка Стоп.
  • 4 — кнопка Повтор.
  • 5 — кнопка Пропустить.
  • 6 — кнопка Да.
  • 7 — кнопка Нет.

Более привлекательные и приятные взгляду всплывающие сообщения (ballons) можно вывести в Windows 7, 8.1 и 10 через API Windows Forms. Следующий PowerShell код выведет всплывающее сообщение рядом с панелью уведомлений Windows 10, которое автоматически исчезнет через 10 секунд.

Add-Type -AssemblyName System.Windows.Forms
$global:balmsg = New-Object System.Windows.Forms.NotifyIcon
$path = (Get-Process -id $pid).Path
$balmsg.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
$balmsg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Warning
$balmsg.BalloonTipText = 'Это текст всплывающего сообщения для пользователя Windows 10'
$balmsg.BalloonTipTitle = "Внимание $Env:USERNAME"
$balmsg.Visible = $true
$balmsg.ShowBalloonTip(10000)

всплывающее уведомление в POwerShell

Кроме того для создания красочных всплывающих сообщений в Windows 10 (PowerShell 5.0+)можно использовать отдельный PowerShell модуль BurntToast из галереи PowerShell.

Модуль устанавливается из онлайн репозитория с помощью менеджера пакетов Windows 10:
Install-Module -Name BurntToast

Теперь, например, в ранее рассматриваемый скрипт автоматического отключение от Wi-FI сети при подключении к Ethernet можно добавить красочное уведомление:

New-BurntToastNotification -Text "Отключение от Wi-Fi сети", "Вы были отключены от Wi-Fi сети, т.к. Вше устройство было подключено к скоростному Ethernet подключению." -AppLogo C:PSchangenetwork.png

Итак, теперь вы знаете как вывести уведомление пользователя через PowerShell. Если у пользователя есть динамики, можно даже сыграть ему мелодию:

[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(698,350)
[console]::beep(523,150)
[console]::beep(415,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)
[console]::beep(880,500)
[console]::beep(440,350)
[console]::beep(440,150)
[console]::beep(880,500)
[console]::beep(830,250)
[console]::beep(784,250)
[console]::beep(740,125)
[console]::beep(698,125)
[console]::beep(740,250)
[console]::beep(455,250)
[console]::beep(622,500)
[console]::beep(587,250)
[console]::beep(554,250)
[console]::beep(523,125)
[console]::beep(466,125)
[console]::beep(523,250)
[console]::beep(349,125)
[console]::beep(415,500)
[console]::beep(349,375)
[console]::beep(440,125)
[console]::beep(523,500)
[console]::beep(440,375)
[console]::beep(523,125)
[console]::beep(659,1000)
[console]::beep(880,500)
[console]::beep(440,350)
[console]::beep(440,150)
[console]::beep(880,500)
[console]::beep(830,250)
[console]::beep(784,250)
[console]::beep(740,125)
[console]::beep(698,125)
[console]::beep(740,250)
[console]::beep(455,250)
[console]::beep(622,500)
[console]::beep(587,250)
[console]::beep(554,250)
[console]::beep(523,125)
[console]::beep(466,125)
[console]::beep(523,250)
[console]::beep(349,250)
[console]::beep(415,500)
[console]::beep(349,375)
[console]::beep(523,125)
[console]::beep(440,500)
[console]::beep(349,375)
[console]::beep(261,125)
[console]::beep(440,1000)

Использование графических или звуковых уведомлений — самый распространённый способ напомнить себе о предстоящем событии. Создавать их проще и удобнее с помощью сторонних программ, да и вид они имеют более привлекательный, чем уведомления, реализованные с помощью windows-скриптов, впрочем, всё зависит от того, какой скрипт вы будете использовать. Если вы работаете в Windows 10 и у вас установлен PowerShell как минимум пятой версии (проверить версию консоли можно командой Get-Host).

Get-Host

Вы можете создавать с его помощью симпатичные уведомления, похожие на те, которые отправляют универсальные приложения. Для этого вам как минимум понадобятся права администратора и открытый модуль BurntToast, опубликованный в Галерее PowerShell.

Сначала установим модуль.

Запустите консоль PowerShell от имени администратора и выполните такую команду:

Install-Module -Name BurntToast

Подтвердите установку модуля из ненадёжного репозитория, введя «Y» и нажав ввод.

PowerShell

Создаваемые с помощью модуля BurntToast уведомления могут содержать заголовок, основной текст, изображение, кнопки отложки и отмены, а также ссылку. Получить полный список поддерживаемых параметров можно в официальной документации, в большинстве же случаев должно хватить трёх или четырёх параметров: заголовка, текста, иконки и рингтона. Создайте в Блокноте новый текстовый файл и вставьте в него следующую команду:

New-BurntToastNotification -Text "Заголовок", "Текст уведомления" -AppLogo Путь к иконке

Если хотите, чтобы уведомление сопровождалось звуковым сигналом, добавьте параметр -Sound с именем одного из стандартных рингтонов, например, -Sound Call5.

New-BurntToastNotification

Сохраните файл с расширением PS1 и запустите. Если модуль установился нормально, в области уведомлений должно появиться стандартное сообщение-тост.

Стандартное сообщение

Если PowerShell выдаст ошибку, разрешите выполнение неподписанных скриптов, выполнив в консоли команду Set-ExecutionPolicy Unrestricted.

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

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

Официальная страница модуля: github.com/Windos/BurntToast

Загрузка…

Понравилась статья? Поделить с друзьями:
  • Как выглядит файл hosts в windows 7 в неизмененном виде
  • Как вывести сообщение windows forms c
  • Как вывести содержимое файла в консоль windows
  • Как выглядит файл boot ini в windows xp
  • Как вывести содержимое файла в командной строке windows