在一个系统中,有多个用户登录。
我想知道哪个用户登录并锁定了系统。
我试图找到LogonUI.exe的可用性。但我没有获得LogonUI.exe的正确用户名
$uname = $env:UserName
$procs = @()
$allProcs = @(Get-WmiObject win32_process)
foreach($proc in $allProcs)
{
if($proc.getowner().user -eq $uname) {
if($proc.ProcessName() -eq LogonUI) {
"system locked"
}
}
}
我试过这种方式。但即使用户锁定了系统,我也没有把它锁定。因为用户名检查失败了。大部分时间它都是空白的。有什么帮助吗?
答案 0 :(得分:0)
从PowerShell 4开始,您可以使用Get-Process -IncludeUserName
直接获取用户名 - 按https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-process
你也可以查看这个帖子中的一些解决方案,也可以从会话管理器获得更直接的状态:Powershell script to see currently logged in users (domain and machine) + status (active, idle, away)
答案 1 :(得分:0)
我不确定您是在域中工作还是仅在本地计算机上工作。但是,如果你应该试试这个。
这是来自microsoft的脚本人员的帖子。所以如果你的幸运,这应该已经解决了你的问题。