2012-01-16 4 views
2

Мне просто интересно, когда я создаю пользователей с powershell (я также автоматически генерирую для них psw), как я могу установить, что после первого входа они должны сменить пароль? Вот код, который создает пользователей:Новый пароль при первом входе в систему с powershell

$container =[ADSI] $Connection 
    $User = $container.Create("User", "cn="+$username) 
$User.Put("sAMAccountName", $username) 
    $User.Put("givenName", $Firstname) 
    $User.Put("sn", $Surname) 
    $User.Put("mail", $Email) 
    $User.SetInfo() 

    # Set Random Pwd and Enable Account 

    $User.PsBase.Invoke("SetPassword", $Password) 
    $User.PsBase.InvokeSet("AccountDisabled", $false) 
    $User.SetInfo() 

ответ

3

Чтобы заставить изменить пароль при первом входе в систему добавить:

$User.pwdLastSet = 0 

Так сценарий становится:

$container =[ADSI] $Connection 
$User = $container.Create("User", "cn="+$username) 
$User.Put("sAMAccountName", $username) 
$User.Put("givenName", $Firstname) 
$User.Put("sn", $Surname) 
$User.Put("mail", $Email) 
$User.SetInfo() 

# Set Random Pwd, force password change at first logon and Enable Account 

$User.PsBase.Invoke("SetPassword", $Password) 
$User.pwdLastSet = 0 
$User.PsBase.InvokeSet("AccountDisabled", $false) 
$User.SetInfo() 
+0

Вы должны будете сделать это после вызова SetPassword, хотя (за которым следует второй вызов SetInfo()). –

+0

@Brian Я добавил весь скрипт, чтобы показать, куда идет дополнительная строка. –

Смежные вопросы