簡體   English   中英

如何根據對MessageBox的響應阻止用戶注銷或使用Powershell鎖定工作站?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM