Вывод уведомлений пользователям из скриптов power shell

Заранее благодарю за вашу помощь.

Вывод уведомлений пользователям из скриптов power shell

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

Вывести всплывающее сообщение на экран с помощью PowerShell

Для вывода простых модального диалогового окна в Windows можно воспользоваться Wscript классами подсистемы сценариев Windows. Следующий PowerShell код выведет обычное текстовое окно с вашим текстом и кнопкой OK.

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

Вывод уведомлений пользователям из скриптов power shell

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

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

Если пользователь нажмет Да, команда вернет значение
6
, а если Нет –
7
.

В зависимости от выбора пользователя вы можете выполнить какое-то действие, или завершить скрипт.

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

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

Если нужно показать пользователю окно ввода и запросить данные, воспользуйтесь классом Windows Forms.

Чтобы обработать введенные пользователе данные:

Вывод уведомлений пользователям из скриптов power shell

Если нужно вывести всплывающее окно поверх всех окон, используйте команду:

Вывести уведомление пользователю Windows из скрипта PowerShell

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

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

Установите модуля из PowerShell Gallery:

Install-Module -Name BurntToast

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

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

:/>  802 11 wlan и драйвер для Wi-Fi адаптера 802.11n, EDUP, Elisona, Kebidu, Chipal и других китайских адаптеров. Как найти и установить?

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

С помощью PowerShell вы можете отправить всплывающее сообщение пользователю на удаленный компьютер. Сначала нужно получить список сессии пользователей на удаленном компьютере (в случае RDS сервера):

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

MSG kbuldogov /server:rds1 “Сервер будет перезагружен через 10 минут. Закройте документы”

Если всплывающее сообщение нужно отправить всем пользователям укажите * вместо имени пользователя:

MSG * /server:rds1 “Срочное сообщение всем! “

Для отправки всплывающего графического уведомления на удаленный компьютер можно воспользоваться скриптом RemoteSendToasNotification.ps1 из нашего GitHub репозитория ( https://github.com/winadm/posh/blob/master/scripts/RemoteSendToasNotification.ps1). Для подключения к удаленному компьютеру используется командлет Invoke-Command, который использует WinRM.

Вывод уведомлений пользователям из скриптов power shell

Время на прочтение

Настал тот момент когда необходимо уходить от всех зарубежных программ удаленного подключения, во всяком случае у нас в компании. Посмотрев отечественные аналоги мы пришли в ужас от стоимости и качества работы ПО. Поразмыслив какой функционал нам необходим для подключения 1-линии к пользователям поняли:

А значит нам будет достаточно простого powershell’a.

Для выполнения дальнейших действий необходимо установить модуль Active Directory для PowerShell

Теперь нужно выполнить действие при нажатии на кнопку $FormButton в котором мы должны будем найти активный сеанс пользователя удаленного ПК и подключиться к этому сеансу

Скрипт готов, бежим проверять

Так же можем добавить проверки:

С такими проверками полная версия скрипта будет выглядеть так

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

Form

Form component for Universal Apps

Forms can include any type of control you want. This allows you to customize the look and feel and use any input controls.

For example, if you have two fields, you will have two properties on $EventData.

Simple forms can use inputs like text boxes and checkboxes.

Formatting a Form

Since forms can use any component, you can use standard formatting components within the form.

:/>  Настройка NTP в Windows

When a form is submitted, you can optionally return another component to replace the form on the page. You can return any Universal Dashboard component. All you need to do is ensure that the component is written to the pipeline within the OnSubmit event handler.

Validating a Form

“txtValidateForm is required”

Canceling a Form

You can define an -OnCancel event handler to invoke when the cancel button is pressed. This can be used to take actions like close a modal.

Displaying output without Replacing the form

In this example, we have an empty form that, when submitted, will update the results element with a UDCard.

Instead of defining all the layout and logic for forms using cmdlets, you can also define a form based on a hashtable of schema. This version of forms is based on react-jsonschema-form.

You define fields that accept string, number, integer, enum and boolean types. This changes the type of input shown.

You can use the required property to set a list of required properties.

Note that the properties need to be lower case! For example, you need to ensure the keys in your properties hashtable are lower case and the list of required properties are also lower case.

You can use the schemaUI property to modify the ordering of the fields.

Script forms also support displaying the output as text or a table.

Windows Forms Designer

The Windows Form Designer is only supported on Windows.

Creating a New Form

Create a PowerShell script by clicking File New File, entering the name of the file with a .PS1 extension. This will be the script that is used to launch your form.

Opening the Designer

To open the designer press Ctrl+Shift+P and then type Show Windows Forms Designer . The PowerShell Pro Tools: Show Forms Designer command should be show. Click or press enter.

:/>  Виндовс 8 нет вайфая

You can also open a form by clicking the Show Windows Forms Designer button in the tool bar of a PS1 file.

Working with the Designer

The designer is very much like the standard Visual Studio designer. The design surface on the left allows you to modify your form. You can resize and delete controls from the bottom.

On the right right it provides a toolbox with controls that can be selected and placed on the form. The add a new control, click the control you’d like to place and then click the design surface of where you would like to place the control.

Below the toolbox is the properties dialog. You can select a control and modify its properties within this control.

On the bottom of the designer is a status bar. It displays the file that is being modified by the designer. An asterisk will be shown when the form is modified.

To implement an event handler, double click on the control you’d like to add the event handler to. It will automatically generate the event handler code in Visual Studio Code.

Event handlers can also be generated by clicking the event handler tab in the property pane.

To create a new event handler, type the name of the handler in the text box next to the event handler. Once you press enter and then save the form, with Ctrl+s or the Save button, the event handler will be generated in the code file.

Оставьте комментарий