[英]How can I stop a user from logging out or locking a workstation using Powershell based on the response to a MessageBox?
我正在嘗試創建一個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')
}
}
預先感謝您提供的任何幫助!
您必須捕獲每種事件類型,將其中斷,並安排一個計划任務來激發您的腳本操作或使用WMI事件觀察器進行類似的工作。
看到關於類似主題的討論,這當然是關閉,但是您要使用的兩種方法都需要使用相同類型的方法。
防止關機的PowerShell窗口
...看起來您可以使用[microsoft.win32.systemevents]使用Register-ObjectEvent設置事件觀察程序,並監視SessionEnding或SessionEnded。 我還沒有時間進行測試,但是您可以使用以下代碼:$ sysevent = [microsoft.win32.systemevents] Register-ObjectEvent -InputObject $ sysevent -EventName“ SessionEnding” -Action {“關機/注銷檢測到。”; Get-Process -Name Powershell | 停止過程-強制}
https://serverfault.com/questions/379830/powershell-window-preventing-shutdown
請記住,只要按一下電源按鈕或拉電源線,就可以硬關閉系統。 沒有阻止這種情況的軟件方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.