Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Массовый сброс пароля в AD (http://forum.oszone.net/showthread.php?t=326130)

Johny_spb 20-04-2017 13:07 2730963

Массовый сброс пароля в AD
 
Доброго времени суток!

Подскажите как реализовать сброс пароля пользователей AD(по списку) и установки требования смены пароля при первом входе.
Пробовал так:
Код:

$objUser=[ADSI]"LDAP://DN_пользователя"
$objUser.SetPassword("Новый_пароль")
$objUser.Put ("pwdLastSet",0) //требование сменить пароль
$objUser.SetInfo()

Но вы это варианте не устраивает то что надо указывать DN, а он разный. Можно ли это реализовать через учетную запись? И не получается задать требование смены пароля при первом входе.

Kazun 20-04-2017 13:54 2730980

Код:

Set-ADUser User -ChangePasswordAtLogon 1

Johny_spb 20-04-2017 15:38 2731012

Код:

Set-ADUser User -ChangePasswordAtLogon 1
Это у меня не срабатывает =( Выдает ошибку

Код:

Set-ADUser : Не удается преобразовать "System.String" в тип "System.Nullable`1[
System.Boolean]", необходимый для параметра "ChangePasswordAtLogon".
строка:1 знак:47
+ set-AdUser USER -ChangePasswordAtLogon 123$Qwe
+                                              ~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Set-ADUser], ParameterBind
  ingException
    + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.
  Management.Commands.SetADUser

Вариант:

Код:

$new=Read-Host "Enter the new password" -AsSecureString
Set-ADAccountPassword USER -NewPassword $new
Set-ADUser USER -ChangePasswordAtLogon $True

Но в этом варианте приходиться вводить пароль, а хотелось бы сделать это автоматом (т.к. Это необходимо для задания первоначального пароля пользователя, который должен поменяться при первом входе)

Вариант:
Код:

Set-ADAccountPassword USER -NewPassword (ConvertTo-SecureString -AsPlainText -String "123" -force)
Set-ADUser USER -ChangePasswordAtLogon $True

не работает =(

Kazun 20-04-2017 15:47 2731014

Научиться копировать без ошибок, это тяжело в наше время.

set-AdUser USER -ChangePasswordAtLogon 123$Qwe <- Что это?

Если требуется задать новый пароль и запросить у пользователя сменить пароль при логоне:
Код:

Set-ADAccountPassword USER -Reset -NewPassword (ConvertTo-SecureString -AsPlainText -String "123" -force)
Set-ADUser USER -ChangePasswordAtLogon $True


Johny_spb 20-04-2017 16:13 2731024

Да именно это и надо.

Код:

Set-ADAccountPassword USER -Reset -NewPassword (ConvertTo-SecureString -AsPlainText -String "123$Qwe" -force)
Set-ADUser USER -ChangePasswordAtLogon $True



ConvertTo-SecureString : Не удается привязать аргумент к параметру "String", та
к как он представляет собой пустую строку.
строка:1 знак:100
+ ... inText -String "123$Qwe" -force)
+                    ~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [ConvertTo-SecureString], Param
  eterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAl
  lowed,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand

Но только этот вариант не работает =(

Kazun 20-04-2017 16:19 2731026

Если пароль содержит $ - то использовать одинарные кавычки.

Код:

'123$Qwe'
И приводите скрины, т.к. информация явно несоответсвует действительности.

Johny_spb 21-04-2017 08:48 2731153

Да действительно, если использовать одинарные кавычки то все работает))

А можно ли сделать так что бы он брал имена уч. записей из файла csv?

Код:

$users = Import-Csv C:\Temp\1\user1.csv -Delimiter ";" -Encoding Default | Where Name
        foreach ($user in $users) {
                $name=$user.name

Set-ADAccountPassword $name -Reset -NewPassword (ConvertTo-SecureString -AsPlainText -String '123$Qwe' -force)
Set-ADUser $name -ChangePasswordAtLogon $True
}

Вроде данный вариант работает(по крайней мере без ошибок), но честно говоря не понимаю точно ли выполнят замену пароля пользователям?

Johny_spb 21-04-2017 11:04 2731174

Все ок!!


Время: 22:43.

Время: 22:43.
© OSzone.net 2001-