Cómo crear una contraseña y un usuario que nunca caduquen a través de un usuario neto a través del archivo .bat

23

Estoy usando a .bat filepara crear un usuario y una contraseña a nivel del sistema operativo Windows.

El problema que enfrento es cuando paso la EXPIRES:NEVERcontraseña, cuando se crea el usuario, no tiene "Password never expires"marcada la casilla de verificación (lo que significa que la contraseña nunca caduca está seleccionada para ese usuario creado) y el usuario caduca automáticamente después de 90 días.

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

Lo anterior es la línea principal de código, paso el nombre de usuario y la contraseña de un archivo de texto y ejecuto el archivo .bat.

Sharpeye500
fuente

Respuestas:

34

Agregue esta línea al archivo por lotes:

WMIC USERACCOUNT WHERE "Name='%1'" SET PasswordExpires=FALSE
Glenn Sullivan
fuente
NB: creo que esto solo funcionará con cuentas LOCALES, no con cuentas DOMAIN. Pero parece que eso es lo que necesitas ...
Glenn Sullivan
1
La respuesta aceptada intentará cambiar tanto el usuario local como el usuario de dominio, si ambos existen con ese nombre de usuario. (Tal vez no tendrá los derechos para cambiar el usuario de dominio, y devolverá "Error genérico" para esa parte, pero al menos lo intentará). Si solo desea cambiar el usuario local, no un usuario de dominio con el mismo nombre si pudiera existir, entonces use lo siguiente: WMIC USERACCOUNT WHERE (Name = '% 1' and Domain = '% computername%') SET PasswordExpires = FALSE
Ronny D'Hoore
2

La opción / caduca es por cuenta, no por contraseña, consulte el comando de ayuda.

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

De la documentación: "Hace que la cuenta de usuario caduque si especifica la fecha".

Qkolnek
fuente
Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Scott Pack
1
La primera oración es IMPORTANTE. Debería estar en respuesta aceptada.
AD
1

El net usercomando se puede usar en cuentas locales y de dominio. Use el /domaininterruptor para cuentas de dominio.

Por ejemplo, para ver la información del usuario de dominio% 1, use

net user %1 /domain

La lista completa de opciones de usuario neto se enumera aquí:

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

David Paige
fuente
1

Usuario AD individual

Para los usuarios del directorio activo, puede usar el comando dsmod para cambiarlo para un solo usuario:

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

Múltiples usuarios de AD

Si desea establecer esta propiedad de forma masiva, puede hacerlo para una unidad organizativa (OU) completa mediante el uso de lo anterior en combinación con dsquery .

Primero, para enumerar todos los usuarios en una unidad organizativa (esto es seguro de ejecutar, ya que solo genera una lista de usuarios):

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

Luego, suponiendo que está satisfecho con la salida del comando anterior, puede canalizarlo a dsmod de la siguiente manera:

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

Más información, con capturas de pantalla, aquí: http://www.petenetlive.com/KB/Article/0000532.htm

Isak Savo
fuente
0
net accounts /MaxPWAge:unlimited

Hace que la contraseña nunca caduque; pero para todas las cuentas en la máquina, no está mal para una máquina doméstica o VM

hB0
fuente
-1

Como se indicó anteriormente, net userno parece permitir que la opción cambie la caducidad de la contraseña solo la caducidad de la cuenta (a través de / caduca).

Esto es lo que usé para eliminar el vencimiento de la contraseña de mi cuenta:

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

Cambie 'nombre de usuario' al nombre de usuario de la cuenta que desea cambiar.

Richard Smith Jr
fuente
44
Esta ya es la respuesta aceptada de hace cuatro años.
Sven