Как я могу запретить пользователю выходить из системы или блокировать рабочую станцию ​​с помощью Powershell на основе ответа на MessageBox? - PullRequest
0 голосов
/ 02 июня 2018

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

$msgBoxInput = [System.Windows.MessageBox]::Show('Have you clocked in/out?','Reminder','YesNo','Error')

switch  ($msgBoxInput) {

'Yes' {

## Continue with user action (ie. lock computer, logout, shutdown)

}

'No' {

## Stop user action (ie. lock computer, logout, shutdown, but not login action)

## Open clock in/out web page
[Diagnostics.Process]::Start('chrome.exe', 'https://url.to.web page')

}

}

Заранее благодарим за любую помощь, которую вы можете оказать!

1 Ответ

0 голосов
/ 02 июня 2018

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

См. Это обсуждение на аналогичную тему, оно имеетКонечно, мы говорим об отключениях, но тот же тип подхода необходим для тех двух, кому вы нужны.

Окно PowerShell, предотвращающее отключение

... похоже, вы можете настроить событиенаблюдатель, использующий Register-ObjectEvent, использующий [microsoft.win32.systemevents] и отслеживающий либо SessionEnding, либо SessionEnded.У меня не было времени проверить это, но вы могли бы взглянуть на что-то вроде этого: $ sysevent = [microsoft.win32.systemevents] Register-ObjectEvent -InputObject $ sysevent -EventName "SessionEnding" -Action {"Завершение работы / Выход из системыобнаружен. "; Get-Process -Name Powershell |Stop-Process -Force}

https://serverfault.com/questions/379830/powershell-window-preventing-shutdown

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

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