Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Réinitialiser le mot de passe de tous les utilisateurs

9 réponses
Avatar
Albenic
Bonsoir,

Je vous soumet mon problème en espérant être au bon endroit et avoir une
réponse.
Je m'occupe d'un réseau dans un lycée. En juin changement de la
"moulinette" à créer les comptes.
En septembre avec mes listes de profs et d'élèves, je lance la
moulinette pour les profs, tout se passe bien les comptes sont créés et
je peux me loguer avec le mot de passe par défaut. Bref tout est parfait.
En revanche pour les élèves les comptes et les répertoires persos sont
créés mais impossible de se loguer. Le mot de passe fournit ne
fonctionne pas.
J'ai essayé de réinitialiser un mot de passe d'un élève et là je peux me
connecter.
Mon problème est que je ne peux pas réinitialiser tous les comptes des
élèves et que les installateurs de la moulinette sont incapables de me
dire si c'est un autre mot de passe par défaut et lequel.
D'où ma question peut-on réinitialiser tous les comptes d'une OU via une
commande spéciale ou un script ? Si oui comment dois-je m'y prendre ?
A moins que l'un d'entre vous est une autre idée pour que je me sorte de
cette situation (les profs commencent à grogner...)
Benoît.

PS : j'ai oublié l'essentiel je gère tout par l'active directory sous
windows 2003 server.

9 réponses

Avatar
moi
Albenic wrote:
Bonsoir,



(...)
D'où ma question peut-on réinitialiser tous les comptes d'une OU via
une commande spéciale ou un script ? Si oui comment dois-je m'y
prendre ?




Tu disposes probablement, qq part sur ton serveur
d'un fichier contenant les noms de login des élèves.

tu dois donc pouvoir faire une boucle "for" dans
un .bat avec la commande "net user"

L'équivalent peut aussi se faire en VBS

Les mots de passe pourront
être pris dans une liste établie avant
ou bien ( en vbs)
choisis au hasard et stockés à mesure ...

HB
Avatar
Mathieu CHATEAU
Bonjour,

j'imagine que chaque compte doit avoir un mot de passe différent avec
changement à la première connexion ?
Sinon, n'importe quel élève peut ouvrir une session avec le compte d'un
autre pendant quelques temps...

Elle est en quoi la moulinette ? vbscript ?

voici un script VBS pour mettre "changez_moi" comme mot de passe à tous les
users d'une OU.
A mettre dans un reset.vbs en changeant le nom du domaine et de l'ou
Dim objOU, objUser
Set objOU = GetObject(LDAP://ou=MonOuEleves,dc=MonDomaine,dc=fr)
objOU.Filter = Array("user")
For Each objUser In objOU
' Set password.
objUser.SetPassword "changez_moi"
' Force password change at next logon.
objUser.Put "pwdLastSet", 0
objUser.SetInfo
Next

inspiré du script ici:
http://groups.google.fr/group/microsoft.public.windows.server.active_directory/browse_thread/thread/950f7b8a738c37e0/0f5af34dd2e8c2eb?hl=fr&lnk=st&q¬tive+directory+reset+password+all+users+vbscript#0f5af34dd2e8c2eb
--
Cordialement,
Mathieu CHATEAU
English blog: http://lordoftheping.blogspot.com
French blog: http://www.lotp.fr



"Albenic" a écrit dans le message de
news:48c03e75$0$10798$
Bonsoir,

Je vous soumet mon problème en espérant être au bon endroit et avoir une
réponse.
Je m'occupe d'un réseau dans un lycée. En juin changement de la
"moulinette" à créer les comptes.
En septembre avec mes listes de profs et d'élèves, je lance la moulinette
pour les profs, tout se passe bien les comptes sont créés et je peux me
loguer avec le mot de passe par défaut. Bref tout est parfait.
En revanche pour les élèves les comptes et les répertoires persos sont
créés mais impossible de se loguer. Le mot de passe fournit ne fonctionne
pas.
J'ai essayé de réinitialiser un mot de passe d'un élève et là je peux me
connecter.
Mon problème est que je ne peux pas réinitialiser tous les comptes des
élèves et que les installateurs de la moulinette sont incapables de me
dire si c'est un autre mot de passe par défaut et lequel.
D'où ma question peut-on réinitialiser tous les comptes d'une OU via une
commande spéciale ou un script ? Si oui comment dois-je m'y prendre ?
A moins que l'un d'entre vous est une autre idée pour que je me sorte de
cette situation (les profs commencent à grogner...)
Benoît.

PS : j'ai oublié l'essentiel je gère tout par l'active directory sous
windows 2003 server.


Avatar
Albenic
Mathieu CHATEAU a écrit :
Bonjour,

j'imagine que chaque compte doit avoir un mot de passe différent avec
changement à la première connexion ?
Sinon, n'importe quel élève peut ouvrir une session avec le compte d'un
autre pendant quelques temps...

Elle est en quoi la moulinette ? vbscript ?

voici un script VBS pour mettre "changez_moi" comme mot de passe à tous
les users d'une OU.
A mettre dans un reset.vbs en changeant le nom du domaine et de l'ou
Dim objOU, objUser
Set objOU = GetObject(LDAP://ou=MonOuEleves,dc=MonDomaine,dc=fr)
objOU.Filter = Array("user")
For Each objUser In objOU
' Set password.
objUser.SetPassword "changez_moi"
' Force password change at next logon.
objUser.Put "pwdLastSet", 0
objUser.SetInfo
Next

inspiré du script ici:
http://groups.google.fr/group/microsoft.public.windows.server.active_directory/browse_thread/thread/950f7b8a738c37e0/0f5af34dd2e8c2eb?hl=fr&lnk=st&q¬tive+directory+reset+password+all+users+vbscript#0f5af34dd2e8c2eb





Bonjour,

C'est tout à fait ce que je cherchais merci beaucoup.
Je tente d'appliquer ce script, je vous tiendrais au courant.

Merci beaucoup, Benoît.
Avatar
Albenic
Mathieu CHATEAU a écrit :
Bonjour,

j'imagine que chaque compte doit avoir un mot de passe différent avec
changement à la première connexion ?
Sinon, n'importe quel élève peut ouvrir une session avec le compte d'un
autre pendant quelques temps...

Elle est en quoi la moulinette ? vbscript ?

voici un script VBS pour mettre "changez_moi" comme mot de passe à tous
les users d'une OU.
A mettre dans un reset.vbs en changeant le nom du domaine et de l'ou
Dim objOU, objUser
Set objOU = GetObject(LDAP://ou=MonOuEleves,dc=MonDomaine,dc=fr)
objOU.Filter = Array("user")
For Each objUser In objOU
' Set password.
objUser.SetPassword "changez_moi"
' Force password change at next logon.
objUser.Put "pwdLastSet", 0
objUser.SetInfo
Next

inspiré du script ici:
http://groups.google.fr/group/microsoft.public.windows.server.active_directory/browse_thread/thread/950f7b8a738c37e0/0f5af34dd2e8c2eb?hl=fr&lnk=st&q¬tive+directory+reset+password+all+users+vbscript#0f5af34dd2e8c2eb





J'ai essayé aujourd'hui le script.
J'ai essuyé un premier échec car dans la ligne Set objOU = GetOject ....
Il fallait mettre des guillemets :
Set objOU = GetObject("LDAP://ou=MonOuEleves,dc=MonDomaine,dc=fr")
Après rectification je relance et là j'ai droit à une erreur 80072030
"cet objet ne se trouve pas sur le serveur"
Du coup je doute. Je ne suis pas un spécialiste en script.
Si mon domaine se nomme paris et que le serveur se nomme serv j'ai mis

Set objOU = GetObject("LDAP://ou=MonOuEleves,dc=serv,dc=paris")

En l'écrivant, je me dis que je me suis planté mais je ne saurais quoi
mettre d'autre.

De plus concernant l'OU, j'en ai plusieurs à la racine de mon domaine
mais celle qui m'intéresse est contenue dans une OU enfant.
Je suppose que ce script parcourt uniquement l'OU citée mais si cette OU
est contenue dans une autre OU doit-on mettre quelque chose du type
eleves/terminaleS ou est-ce que le script trouvera seul l'OU concernée.
Par avance merci de votre aide et de vos précieux conseils.
Cordialement, Benoît.
Avatar
Mathieu CHATEAU
si votre domaine ad est paris.fr:
dc=paric,dc=fr par exemple
Malgré le nom dc, on ne met jamais le nom d'un dc.

le script ne fait pas les sous ou
--
Cordialement,
Mathieu CHATEAU
English blog: http://lordoftheping.blogspot.com
French blog: http://www.lotp.fr

"Albenic" a écrit dans le message de
news:48c18cb6$0$32018$
Mathieu CHATEAU a écrit :
Bonjour,

j'imagine que chaque compte doit avoir un mot de passe différent avec
changement à la première connexion ?
Sinon, n'importe quel élève peut ouvrir une session avec le compte d'un
autre pendant quelques temps...

Elle est en quoi la moulinette ? vbscript ?

voici un script VBS pour mettre "changez_moi" comme mot de passe à tous
les users d'une OU.
A mettre dans un reset.vbs en changeant le nom du domaine et de l'ou
Dim objOU, objUser
Set objOU = GetObject(LDAP://ou=MonOuEleves,dc=MonDomaine,dc=fr)
objOU.Filter = Array("user")
For Each objUser In objOU
' Set password.
objUser.SetPassword "changez_moi"
' Force password change at next logon.
objUser.Put "pwdLastSet", 0
objUser.SetInfo
Next

inspiré du script ici:
http://groups.google.fr/group/microsoft.public.windows.server.active_directory/browse_thread/thread/950f7b8a738c37e0/0f5af34dd2e8c2eb?hl=fr&lnk=st&q¬tive+directory+reset+password+all+users+vbscript#0f5af34dd2e8c2eb




J'ai essayé aujourd'hui le script.
J'ai essuyé un premier échec car dans la ligne Set objOU = GetOject ....
Il fallait mettre des guillemets :
Set objOU = GetObject("LDAP://ou=MonOuEleves,dc=MonDomaine,dc=fr")
Après rectification je relance et là j'ai droit à une erreur 80072030 "cet
objet ne se trouve pas sur le serveur"
Du coup je doute. Je ne suis pas un spécialiste en script.
Si mon domaine se nomme paris et que le serveur se nomme serv j'ai mis

Set objOU = GetObject("LDAP://ou=MonOuEleves,dc=serv,dc=paris")

En l'écrivant, je me dis que je me suis planté mais je ne saurais quoi
mettre d'autre.

De plus concernant l'OU, j'en ai plusieurs à la racine de mon domaine mais
celle qui m'intéresse est contenue dans une OU enfant.
Je suppose que ce script parcourt uniquement l'OU citée mais si cette OU
est contenue dans une autre OU doit-on mettre quelque chose du type
eleves/terminaleS ou est-ce que le script trouvera seul l'OU concernée.
Par avance merci de votre aide et de vos précieux conseils.
Cordialement, Benoît.


Avatar
Gilles LAURENT [MVP]
"Albenic" a écrit dans le message de
news:48c03e75$0$10798$
| Bonsoir,

Bonjour,

[...]
| D'où ma question peut-on réinitialiser tous les comptes d'une OU via
| une commande spéciale ou un script ? Si oui comment dois-je m'y
| prendre ?

En ligne de commandes (une seule ligne) :
> dsquery user -scope onelevel -limit 0
"ou=ts,ou=eleves,dc=paris,dc=fr" | dsmod user -pwd Passw0rd -mustchpwd
yes

Cette ligne de commandes réinitialisera le mot de passe des utilisateurs
de l'OU "/eleves/ts" du domaine DNS "paris.fr" avec le mot de passe
initial "Passw0rd" et fixera l'option de changement du mot de passe à la
première ouverture de session. La syntaxe utilisée dans cet exemple
correspond à l'arborescence Active Directory représentée ci-dessous (vue
via dsa.msc) :

+ paris.fr
+ eleves
+ ts
user1
user2
userN

Note: Pour un traitement récursif, supprimez l'argument "-scope
onelevel"

Managing Active Directory from the command line :
http://technet.microsoft.com/en-us/library/cc778414.aspx

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Albenic
Mathieu CHATEAU a écrit :
si votre domaine ad est paris.fr:
dc=paric,dc=fr par exemple
Malgré le nom dc, on ne met jamais le nom d'un dc.

le script ne fait pas les sous ou




Alors comment lui indiquer le chemin vers une sous OU ?
Ce n'est pas possible ?

PS : le problème du domaine semble réglé : j'ai fait un test avec une OU
à la racine du domaine et un compte utilisateur dedans pas de message
d'erreur.
Le hic est que je l'ai fait à distance en prenant le contrôle du serveur
et je n'ai pas encore pu tester le résultat sur un pc du réseau.
Avatar
Albenic
Bonsoir,

Un grand merci à vous, grâce à cette "simple" ligne de commandes, je ne
serais pas obligé de me planquer pour éviter les collègues...
Un détail tout de même, j'ai lu le message jusqu'au bout et la note
finale concernant le traitement récursif m'intéresse.
L'arborescence sur mon serveur ressemble à ceci :

+ paris.fr
+ LGT
+ eleves
+ affecte
+ TS
....
+ nouveau
+ profs

Je voudrais appliquer le traitement récursif à toute l'OU eleves mais
j'ai peur de toucher au profs (profs et eleves sont au même niveau).

Si je tape dans ma commande :

"ou=eleves,ou=LGT,dc=paris,dc=fr"

Le traitement récursif va bien s'appliquer à partir de eleves et pas
au-dessus ou au même niveau (genre sur l'OU profs). J'ai un doute car
dans la commande on parcourt les répertoires "en sens inverse".

Par avance merci de vos éclaircissements, Benoît.



Gilles LAURENT [MVP] a écrit :
"Albenic" a écrit dans le message de
news:48c03e75$0$10798$
| Bonsoir,

Bonjour,

[...]
| D'où ma question peut-on réinitialiser tous les comptes d'une OU via
| une commande spéciale ou un script ? Si oui comment dois-je m'y
| prendre ?

En ligne de commandes (une seule ligne) :
> dsquery user -scope onelevel -limit 0
"ou=ts,ou=eleves,dc=paris,dc=fr" | dsmod user -pwd Passw0rd -mustchpwd
yes

Cette ligne de commandes réinitialisera le mot de passe des utilisateurs
de l'OU "/eleves/ts" du domaine DNS "paris.fr" avec le mot de passe
initial "Passw0rd" et fixera l'option de changement du mot de passe à la
première ouverture de session. La syntaxe utilisée dans cet exemple
correspond à l'arborescence Active Directory représentée ci-dessous (vue
via dsa.msc) :

+ paris.fr
+ eleves
+ ts
user1
user2
userN

Note: Pour un traitement récursif, supprimez l'argument "-scope
onelevel"

Managing Active Directory from the command line :
http://technet.microsoft.com/en-us/library/cc778414.aspx



Avatar
Albenic
Albenic a écrit :
Bonsoir,

Un grand merci à vous, grâce à cette "simple" ligne de commandes, je ne
serais pas obligé de me planquer pour éviter les collègues...
Un détail tout de même, j'ai lu le message jusqu'au bout et la note
finale concernant le traitement récursif m'intéresse.
L'arborescence sur mon serveur ressemble à ceci :

+ paris.fr
+ LGT
+ eleves
+ affecte
+ TS
....
+ nouveau
+ profs

Je voudrais appliquer le traitement récursif à toute l'OU eleves mais
j'ai peur de toucher au profs (profs et eleves sont au même niveau).

Si je tape dans ma commande :

"ou=eleves,ou=LGT,dc=paris,dc=fr"

Le traitement récursif va bien s'appliquer à partir de eleves et pas
au-dessus ou au même niveau (genre sur l'OU profs). J'ai un doute car
dans la commande on parcourt les répertoires "en sens inverse".

Par avance merci de vos éclaircissements, Benoît.



Gilles LAURENT [MVP] a écrit :
"Albenic" a écrit dans le message de
news:48c03e75$0$10798$
| Bonsoir,

Bonjour,

[...]
| D'où ma question peut-on réinitialiser tous les comptes d'une OU via
| une commande spéciale ou un script ? Si oui comment dois-je m'y
| prendre ?

En ligne de commandes (une seule ligne) :
> dsquery user -scope onelevel -limit 0
"ou=ts,ou=eleves,dc=paris,dc=fr" | dsmod user -pwd Passw0rd -mustchpwd
yes

Cette ligne de commandes réinitialisera le mot de passe des
utilisateurs de l'OU "/eleves/ts" du domaine DNS "paris.fr" avec le
mot de passe initial "Passw0rd" et fixera l'option de changement du
mot de passe à la première ouverture de session. La syntaxe utilisée
dans cet exemple correspond à l'arborescence Active Directory
représentée ci-dessous (vue via dsa.msc) :

+ paris.fr
+ eleves
+ ts
user1
user2
userN

Note: Pour un traitement récursif, supprimez l'argument "-scope onelevel"

Managing Active Directory from the command line :
http://technet.microsoft.com/en-us/library/cc778414.aspx






Suite et fin pour ceux que cela intéresse ou intéressera :

la commande suivante à parfaitement fonctionné :

dsquery user -limit 0 "ou=eleves,ou=LGT,dc=paris,dc=fr" | dsmod user
-pwd Passw0rd -mustchpwd yes

Merci encore de votre aide, Benoît.