检查是否启用或禁用本地用户

时间:2019-06-04 10:20:03

标签: windows powershell

我需要一个看似简单的if代码,用于检查是否启用或禁用了本地用户。

完成检查后,我需要禁用一个简单的用户(Disable-LocalUser -Name "User"),但是我无法确定首先检查用户是否处于启用状态的部分。

谢谢。

2 个答案:

答案 0 :(得分:3)

假设您在$user中有用户名

if ((Get-LocalUser -Name $user).Enabled)
{
    <#disable code here#>
}

这应该有效。

编辑详细:

$User = "blahblah"
try
{
    $Result = (Get-LocalUser -Name $user -ErrorAction Stop).Enabled
    try
    {
        if ($Result)
        {
            "disable code here"
        }
    }
    catch
    {
        $_.Exception.Message #in case disable fails
    }
}
catch
{
    $_.Exception.Message #if user doesnt exist
}

答案 1 :(得分:0)

您可以使用Enabled检查Where-Object的状态,并直接通过管道传递到Disable-LocalUser,前提是脚本需要提升运行权限。

PoSh> Get-LocalUser -Name TestUser | Where-Object Enabled

Name     Enabled Description
----     ------- -----------
TestUser True    UserTest


PoSh> Get-LocalUser -Name TestUser | Where-Object Enabled | Disable-LocalUser
PoSh> Get-LocalUser -Name TestUser

Name     Enabled Description
----     ------- -----------
TestUser False   UserTest