我需要一个看似简单的if
代码,用于检查是否启用或禁用了本地用户。
完成检查后,我需要禁用一个简单的用户(Disable-LocalUser -Name "User"
),但是我无法确定首先检查用户是否处于启用状态的部分。
谢谢。
答案 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