我正在尝试编写一个自定义 powershell 脚本,如果不存在具有指定名称的用户,它将创建一个本地用户。
我有这个脚本:
function Ensure-LocalUser
{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string] $userName,
[Parameter(Mandatory=$true)]
[string] $passWord
)
process{
$objOu = [ADSI]"WinNT://${env:Computername}"
$localUsers = $objOu.Children | where {$_.SchemaClassName -eq 'user'} | Select {$_.name[0].ToString()}
if($localUsers -NotContains $userName)
{
$objUser = $objOU.Create("User", $userName)
$objUser.setpassword($password)
$objUser.SetInfo()
$objUser.description = "CMM Test user"
$objUser.SetInfo()
return $true
}
else
{
return $false
}
}
}
与创建用户相关的部分有效,但我的-NotContains
验证总是返回false。这会导致创建用户的尝试失败,因为该用户已经存在。使用调试器,我可以看到 $localusers 实际上包含我要查找的用户名。
如何更正我的脚本以达到我的目标?