![如何在命令行上判断系统是否处于“锁定”状态?](https://linux22.com/image/1605612/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%8A%E5%88%A4%E6%96%AD%E7%B3%BB%E7%BB%9F%E6%98%AF%E5%90%A6%E5%A4%84%E4%BA%8E%E2%80%9C%E9%94%81%E5%AE%9A%E2%80%9D%E7%8A%B6%E6%80%81%EF%BC%9F.png)
我已经浏览了百万个搜索结果,但都没有回答我的问题:
如何使用终端/cmd.exe 命令(或如果其他方法都失败,则使用 PowerShell cmdlet/脚本)确定计算机是否处于“锁定”状态?
我所说的“锁定”是指用户按下 WinKey + L 进入需要输入密码才能返回桌面的状态。
理想的输出应该是简单的“0”或“1”,但我绝对可以接受类似这样的输出:
The computer is currently locked.
...只要它不变。我已经习惯了被迫解析输出,所以再多一件这样的事情也不会有什么区别。我只是不知道如何从 Windows 获得任何类型的答案。
答案1
Powershell,检查用户是否登录并且logonui是否正在运行。
# locked.ps1
[pscustomobject]@{locked = (quser 2>$null) -and (get-process logonui -ea 0) }
invoke-command computer01 locked.ps1
locked PSComputerName RunspaceId
------ -------------- ----------
True computer01 7897e551-c698-4633-a740-e8bf5e139e98