如何根据对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注销或锁定工作站?的主要内容,如果未能解决你的问题,请参考以下文章

关于MessageBox

如何使用响应式文件管理器 9 阻止其他文件夹访问

如何解决这个“http://localhost:8080”已被 CORS 策略阻止:对预检请求的响应未通过 vueJS 中的访问控制?

MessageBox 根据事件播放不同的铃声

已被 CORS 策略阻止:对预检请求的响应未通过

wpf 改变属性后怎么自动做出响应?