如何根据对MessageBox的响应阻止用户使用Powershell注销或锁定工作站?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据对MessageBox的响应阻止用户使用Powershell注销或锁定工作站?相关的知识,希望对你有一定的参考价值。
我正在尝试创建一个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 {“Shutdown / Logoff检测到。“; Get-Process -Name Powershell |停止处理 - 强制}
https://serverfault.com/questions/379830/powershell-window-preventing-shutdown
请记住,只需按下电源按钮或拉动电源线即可完全关闭系统。没有软件方法可以阻止它。
以上是关于如何根据对MessageBox的响应阻止用户使用Powershell注销或锁定工作站?的主要内容,如果未能解决你的问题,请参考以下文章
如何解决这个“http://localhost:8080”已被 CORS 策略阻止:对预检请求的响应未通过 vueJS 中的访问控制?