Вы также можете использовать WinNT-провайдер самостоятельно без модуля LocalAccounts
для создания локального пользователя следующим образом:
$newUser = 'Test'
$ComputerName = $env:COMPUTERNAME
# create a new local user using the WinNT provider
$Computer = [ADSI]"WinNT://$ComputerName,Computer"
$User = $Computer.Create("User", $newUser)
$User.SetPassword("abc123")
$User.SetInfo()
$User.FullName = "Test User"
$User.SetInfo()
$User.Description = "User to test WinNT"
$User.SetInfo()
Чтобы установить «Пользователь должен сменить пароль при следующем входе в систему» для локального пользователя
# bind to the local user with the WinNT provider
$localUser = 'Test'
$ComputerName = $env:COMPUTERNAME
$user = [ADSI]"WinNT://$ComputerName/$localUser,user"
if ($user.UserFlags.Value -band 65536) { # ADS_UF_DONT_EXPIRE_PASSWD
Write-Host "The password for user '$localUser' never expires"
}
elseif ($user.UserFlags.Value -band 64) { # ADS_UF_PASSWD_CANT_CHANGE
Write-Host "User '$localUser' is not allowed to change password"
}
elseif ($user.UserFlags.Value -band 32) { # ADS_UF_PASSWD_NOTREQD
Write-Host "User '$localUser' does not require a password"
}
else {
$user.Put("PasswordExpired", 1)
$user.SetInfo()
}
См. перечисление ADS_USER_FLAG_ENUM