Проверьте, включен ли локальный пользователь - PullRequest
0 голосов
/ 04 июня 2019

Мне нужен, казалось бы, простой if код, который бы проверял, включен или отключен локальный пользователь.

После проверки мне нужно отключить простого пользователя (Disable-LocalUser -Name "User"), однако я не могу обработать деталь, которая сначала проверит, находится ли пользователь в активированном состоянии.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 04 июня 2019

Предполагая, что у вас есть имя пользователя в $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
}
0 голосов
/ 04 июня 2019

Вы можете проверить состояние 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...