Джо Браун говорит по телефону. Он заблокирован для доступа к Windows, потому что забыл свой пароль. Мы могли бы сбросить его пароль через Active Directory Users and Computers, но ADUC очень раздражает.
Конечно, также можно разблокировать учетную запись Джо Брауна и сбросить его пароль на «33Foo $ bars» через NET USER:
net user jbrown 33Foo$bars /domain /active:yes
К сожалению, флаг, требующий от него выбора нового пароля, этой командой не устанавливается. Мы, как просвещенные администраторы, не хотим знать постоянный пароль любого пользователя в любое время.
Есть ли у кого-нибудь эффективный метод командной строки для разблокировки / сброса и требовать смены пароля с использованием собственных инструментов Windows (включая PowerShell или VBScript, если необходимо), но без сторонних двоичных файлов?
Контекст: домен Windows Server 2008.
Бинарный файл 'dsmod' (поставляется с Win7 и Vista, и где-то по пути их тоже получил XP) должен делать то, что вы хотите.
dsmod user UserDN -pwd $Password -mustchpwd yes
Он также может намного больше! Очень полезный инструмент.
Наряду с этим есть пара других инструментов, которые также весьма полезны. dsquery
ищет AD из командной строки. dsget
извлекает атрибуты из объектов. dsadd
позволяет создавать объекты (и пользователей!). Определенно стоит поискать любого скриптера.
Не тестировалось, но я делал подобные вещи раньше с Пользователь DSMod
dsquery user -samid username | dsmod.exe user -pwd <Password> -mustchpwd yes -disabled no
/ edited - включает хорошее предложение добавить в начало dsquery, чтобы вы могли найти samid (логин) вместо UDN.
Это просто сработало для меня на моем Win7.
net user *username* *password*/domain ACTIVE:Yes /logonpasswordchg:yes
Чтобы сбросить пароль пользователя и принудительно изменить пароль:
dsmod user "CN=John Doe,CN=Users,DC=microsoft,DC=com" -pwd A1b2C3d4 -mustchpwd yes