Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Массовый сброс пароля в AD

Ответить
Настройки темы
PowerShell - [решено] Массовый сброс пароля в AD

Новый участник


Сообщения: 34
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток!

Подскажите как реализовать сброс пароля пользователей AD(по списку) и установки требования смены пароля при первом входе.
Пробовал так:
Код: Выделить весь код
$objUser=[ADSI]"LDAP://DN_пользователя"
$objUser.SetPassword("Новый_пароль")
$objUser.Put ("pwdLastSet",0) //требование сменить пароль
$objUser.SetInfo()
Но вы это варианте не устраивает то что надо указывать DN, а он разный. Можно ли это реализовать через учетную запись? И не получается задать требование смены пароля при первом входе.

Отправлено: 13:07, 20-04-2017

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Set-ADUser User -ChangePasswordAtLogon 1
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:54, 20-04-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 34
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
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
не работает =(

Отправлено: 15:38, 20-04-2017 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


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

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

Если требуется задать новый пароль и запросить у пользователя сменить пароль при логоне:
Код: Выделить весь код
Set-ADAccountPassword USER -Reset -NewPassword (ConvertTo-SecureString -AsPlainText -String "123" -force)
Set-ADUser USER -ChangePasswordAtLogon $True

Отправлено: 15:47, 20-04-2017 | #4


Новый участник


Сообщения: 34
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Код: Выделить весь код
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
Но только этот вариант не работает =(

Отправлено: 16:13, 20-04-2017 | #5


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


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

Код: Выделить весь код
'123$Qwe'
И приводите скрины, т.к. информация явно несоответсвует действительности.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:19, 20-04-2017 | #6


Новый участник


Сообщения: 34
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

А можно ли сделать так что бы он брал имена уч. записей из файла 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
}
Вроде данный вариант работает(по крайней мере без ошибок), но честно говоря не понимаю точно ли выполнят замену пароля пользователям?

Отправлено: 08:48, 21-04-2017 | #7


Новый участник


Сообщения: 34
Благодарности: 0

Профиль | Отправить PM | Цитировать


Все ок!!

Отправлено: 11:04, 21-04-2017 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Массовый сброс пароля в AD

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Сброс пароля Ttsume Windows Server 2012/2012 R2 3 15-08-2014 13:39
Интернет - Сброс сетевого пароля netwareuse Microsoft Windows 7 0 12-06-2013 03:00
2008 R2 - Сброс пароля администратора IncvizitorXGM Windows Server 2008/2008 R2 3 14-02-2012 12:45
Сброс почтового пароля после изменения доменного пароля Gangabass Microsoft Windows NT/2000/2003 4 27-01-2009 06:47
Сброс HDD пароля belk Ноутбуки 5 15-07-2008 14:20




 
Переход