指定された名前のユーザーが存在しない場合にローカル ユーザーを作成するカスタム 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 に実際に含まれていることがわかります。
スクリプトを修正して目標を達成するにはどうすればよいですか?