如何使用PowerShell查找所有锁定的用户

时间:2018-02-13 07:53:24

标签: powershell

在一个系统中,有多个用户登录。

我想知道哪个用户登录并锁定了系统。

我试图找到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"
         }
    }
}

我试过这种方式。但即使用户锁定了系统,我也没有把它锁定。因为用户名检查失败了。大部分时间它都是空白的。有什么帮助吗?

2 个答案:

答案 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)

我不确定您是在域中工作还是仅在本地计算机上工作。但是,如果你应该试试这个。

https://blogs.technet.microsoft.com/heyscriptingguy/2011/08/31/use-powershell-to-find-locked-out-user-accounts/

这是来自microsoft的脚本人员的帖子。所以如果你的幸运,这应该已经解决了你的问题。