Comment créer un mot de passe et un utilisateur qui n'expirent jamais via un utilisateur net via un fichier .bat

23

J'utilise un .bat filepour créer un utilisateur et un mot de passe au niveau du système d'exploitation Windows.

Le problème auquel je suis confronté est lorsque je passe EXPIRES:NEVERpour le mot de passe, lorsque l'utilisateur est créé, la "Password never expires"case n'est pas cochée (ce qui signifie que le mot de passe n'expire jamais est sélectionné pour cet utilisateur créé) et l'utilisateur expire automatiquement après 90 jours.

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

Ce qui précède est la ligne principale de code, je passe le nom d'utilisateur et le mot de passe à partir d'un fichier texte et exécute le fichier .bat.

Sharpeye500
la source

Réponses:

34

Ajoutez cette ligne au fichier batch:

WMIC USERACCOUNT WHERE "Name='%1'" SET PasswordExpires=FALSE
Glenn Sullivan
la source
NB: Je pense que cela ne fonctionnera qu'avec les comptes LOCAUX, pas les comptes DOMAIN. Mais il semble que c'est ce dont vous avez besoin ...
Glenn Sullivan
1
La réponse acceptée tentera de modifier à la fois l'utilisateur local et l'utilisateur de domaine, s'ils existent tous les deux avec ce nom d'utilisateur. (Peut-être qu'il n'aura pas le droit de changer l'utilisateur de domaine et renverra "Échec générique" pour cette partie, mais au moins il essaiera.) Si vous voulez seulement changer l'utilisateur local, pas un utilisateur de domaine avec le même nom s'il devait se produire, utilisez les éléments suivants: WMIC USERACCOUNT WHERE (Name = '% 1' and Domain = '% computername%') SET PasswordExpires = FALSE
Ronny D'Hoore
2

L'option / expires concerne le compte, pas le mot de passe, consultez l'aide de la commande.

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

Dans la documentation: "Provoque l'expiration du compte d'utilisateur si vous spécifiez la date."

Qkolnek
la source
Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien de référence.
Scott Pack
1
La première phrase est IMPORTANT. Doit être en réponse acceptée.
AD
1

La net usercommande peut être utilisée sur les comptes locaux et de domaine. Utilisez le /domaincommutateur pour les comptes de domaine.

Par exemple, pour voir les informations de l'utilisateur de domaine% 1, utilisez

net user %1 /domain

La liste complète des options d'utilisateur net est répertoriée ici:

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

David Paige
la source
1

Utilisateur AD unique

Pour les utilisateurs Active Directory, vous pouvez utiliser la commande dsmod pour la modifier pour un seul utilisateur:

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

Plusieurs utilisateurs AD

Si vous souhaitez définir en bloc cette propriété, vous pouvez le faire pour une unité organisationnelle (OU) entière en utilisant ce qui précède en combinaison avec dsquery .

Tout d'abord, pour répertorier tous les utilisateurs dans une unité d'organisation (cela est sûr à exécuter, car il ne génère qu'une liste d'utilisateurs):

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

Ensuite, en supposant que vous êtes satisfait de la sortie de la commande ci-dessus, vous pouvez la diriger vers dsmod comme ceci:

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

Quelques informations supplémentaires, avec des captures d'écran, ici: http://www.petenetlive.com/KB/Article/0000532.htm

Isak Savo
la source
0
net accounts /MaxPWAge:unlimited

Rend le mot de passe à jamais expirer; mais pour tous les comptes sur la machine - pas mal pour une machine domestique ou une machine virtuelle

hB0
la source
-1

Comme indiqué ci-dessus, net userne semble pas permettre à l'otpion de modifier l'expiration du mot de passe uniquement l'expiration du compte (via / expire).

Voici ce que j'ai utilisé pour supprimer l'expiration du mot de passe de mon compte:

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

Remplacez «nom d'utilisateur» par le nom d'utilisateur du compte que vous souhaitez modifier.

Richard Smith Jr
la source
4
C'est déjà la réponse acceptée il y a quatre ans.
Sven