Как создать никогда не истекающий пароль и пользователя через пользователя net через файл .bat

23

Я использую .bat fileдля создания пользователя и пароля на уровне операционной системы Windows.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я передаю EXPIRES:NEVERпароль, когда пользователь создается, на нем не установлен "Password never expires"флажок (это означает, что для этого созданного пользователя пароль никогда не истекает), а срок действия пользователя истекает автоматически через 90 дней.

Net User %1 %2 /COMMENT:"%3" /EXPIRES:NEVER /PASSWORDCHG:NO /ADD

Выше приведена основная строка кода, я передаю имя пользователя и пароль из текстового файла и запускаю файл .bat.

Sharpeye500
источник

Ответы:

34

Добавьте эту строку в командный файл:

WMIC USERACCOUNT WHERE "Name='%1'" SET PasswordExpires=FALSE
Гленн Салливан
источник
NB. Я считаю, что это будет работать только с ЛОКАЛЬНЫМИ учетными записями, но не с учетными записями DOMAIN. Но, похоже, это то, что вам нужно ...
Гленн Салливан
1
Принятый ответ попытается изменить как локального пользователя, так и пользователя домена, если они оба существуют с этим именем пользователя. (Возможно, у него не будет прав на изменение пользователя домена, и он вернет «Общий сбой» для этой части, но, по крайней мере, попытается.) Если вы хотите изменить только локального пользователя, а не пользователя домена с то же имя, если оно существует, затем используйте следующее: WMIC USERACCOUNT WHERE (Name = '% 1' и Domain = '% computername%') SET PasswordExpires = FALSE
Ronny D'Hoore
2

Опция / истекает для учетной записи, а не для пароля, проверьте справку команды.

http://support.microsoft.com/kb/251394/en-us

Из документации: «Вызывает истечение срока действия учетной записи пользователя, если вы укажете дату».

Qkolnek
источник
Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Скотт Пак
1
Первое предложение ВАЖНО. Должен быть в принятом ответе.
AD
1

net userКоманда может использоваться на местном, а также учетные записи домена. Используйте /domainпереключатель для учетных записей домена.

Например, чтобы просмотреть информацию для пользователя домена% 1, используйте

net user %1 /domain

Полный список сетевых параметров пользователя приведен здесь:

http://support.microsoft.com/kb/251394

Дэвид Пейдж
источник
1

Один пользователь AD

Для активных пользователей каталога вы можете использовать команду dsmod, чтобы изменить ее для одного пользователя:

dsmod user "CN=username,OU={User Org Unit},DC... etc" -pwdneverexpires yes

Несколько пользователей AD

Если вы хотите массово установить это свойство, вы можете сделать это для всей организационной единицы (OU), используя вышеуказанное в сочетании с dsquery .

Сначала, чтобы вывести список всех пользователей в OU (это безопасно для запуска, потому что он выводит только список пользователей):

dsquery user "OU={your target OU},DC={your domain},DC={your domain extension}"

Затем, предполагая, что вы довольны выводом приведенной выше команды, вы можете передать ее в dsmod следующим образом:

dsquery user "OU={your target OU},DC={your domain},DC={your domain extension}" | dsmod user -pwdneverexpires yes

Еще немного информации, со скриншотами, здесь: http://www.petenetlive.com/KB/Article/0000532.htm

Исак Саво
источник
0
net accounts /MaxPWAge:unlimited

Делает пароль, чтобы никогда не истек; но для всех аккаунтов на машине - неплохо для домашней машины или ВМ

HB0
источник
-1

Как указано выше, net userне позволяет otpion изменять срок действия пароля, только срок действия учетной записи (через / истекает).

Вот что я использовал, чтобы удалить срок действия пароля для моей учетной записи:

wmic UserAccount where Name='username' set PasswordExpires=False

Измените имя пользователя на имя учетной записи, которую вы хотите изменить.

Ричард Смит младший
источник
4
Это уже принятый ответ четыре года назад.
Свен