Et voila j'approche de la fin, il y a encore une petite chose à voir.
Pourquoi quand je migre mes motsde passe avec PES, le compte user que je
recupere sur la cible à de cocher
"L'utilisateur devra changer de mot de passe"
Alors que sur la source je ne l'ai pas de cocher.
Donc de se fait, à chaque ouverture de session j'ai le msg; mot de passe
expiré..
Par contre ceci fonctionne mais uniquement pour l'option: DONT_EXPIRE_PASSWD l'autre option PASSWD_CANT_CHANGE ne fonctionne pas. Mais j'ai vu avec le logiciel admodify que dans le fichier xml qui renvoi à l'interieur j'ai une erreur ID de securité, tu peux voir le poste sur Mathieu. 'Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 Const ADS_UF_PASSWD_CANT_CHANGE = &H0040 'Set objUser = GetObject _ ' ("LDAP://cn=als,ou=info,dcûru,dc=dyndns,dc=org") 'intUAC = objUser.Get("userAccountControl") Set objUser = GetObject _ ("LDAP://cn=als,ou=info,dcûru,dc=dyndns,dc=org") intUAC = objUser.Get("userAccountControl") 'If ADS_UF_DONT_EXPIRE_PASSWD AND intUAC Then ' Wscript.Echo "Already enabled" 'Else ' objUser.Put "userAccountControl", intUAC XOR _ ' ADS_UF_DONT_EXPIRE_PASSWD ' objUser.SetInfo ' WScript.Echo "Password never expires is now enabled" If ADS_UF_PASSWD_CANT_CHANGE AND intuac Then Wscript.Echo "Already enabled" else objUser.Put "userAccountControl", intUAC XOR _ ADS_UF_PASSWD_CANT_CHANGE ' objPasswordNoChangeFlag = objUser.UserFlags XOR ADS_UF_PASSWD_CANT_CHANGE ' objUser.Put "userFlags", objPasswordNoChangeFlag objUser.SetInfo WScript.Echo "Password cant change is now enabled" End If 'end if
"Robby" a écrit dans le message de news: %
Merci Jonathan, Ok mais ca j'avais compris, je l'ai deja fait et ca ne marche pas. Les script s'execute mais ne modifie rien dans AD.
"Jonathan BISMUTH" a écrit dans le message de news:
Ok, je ne connaissais pas ton niveau en scripting, désolé :( appelle le active.vbs (ou tout ce que tu veux.vbs en fait). Tu peux le lancer directement
- dans la ligne : "Set oContainer = GetObject("LDAP://serveur-à-cibler/dc=domain,dc=ext")" modifie : "serveur-à-cibler" par le nom de ton DC dc=domain par dc=première partie de ton nom de domaine dc=ext par dc= extension du domaine
par exemple : - soit un serveur DC1 et un domaine toto.lan, la ligne serait Set oContainer = GetObject("LDAP://DC1/dc=toto,dc=lan") - soit un serveur DC2 et un domaine france.toto.lan, la ligne serait Set oContainer = GetObject("LDAP://DC2/dc=france,dc=toto,dc=lan")
-- Jonathan BISMUTH MVP Windows Server - Directory Services MCSE 2000/ADSI-AutoIT Scripter Transcript (ID: 691839, code: MCSE2000) www.portail-mcse.net "Robby" a écrit dans le message de news:
J'ai essaye en ligne de commande: wscript nomdufichier.vbs, j'ai bien la reponse "Utilisateurs convertis avec succès" mais dans l'AD, aucune modifs. En plus je dois mettre en commantaire les lignes : 'Case "user" ' objUser.AccountDisabled = FALSE ' objUser.SetInfo et vice-versa pour : 'Case "organizationalUnit" , "container" ' ConvertUsers(oObj) si non ca plante, par contre quand je laisse l'une ou l'autre le script se termine correctment, mais pas de modifs dans l'ad. Encore merci, Robby.
"Robby" a écrit dans le message de news: ubZyEz$
Merci Jonathan,
Je l'execute comment ? Dois je créer un fichier ? si oui quel extension ? Je le place au niveau de l'OU ? si oui comment ? dois je créer une GPO ? va t-il fonctionner pour tous les utilisateurs ? Comme tu peux le lire, je suis novice. Merci d'avance, Robby
"Jonathan BISMUTH" a écrit dans le message de news: uiWH8o$
Re,
jette par exemple un coup d'oeil à ça (inspiré de ceci : http://www.microsoft.com/technet/scriptcenter/scripts/ad/users/default.mspx?mfr=true) :
'### Début script ### Set oContainer = GetObject("LDAP://serveur-à-cibler/dc=domain,dc=ext")
ConvertUsers(oContainer) Set oContainer = Nothing
MsgBox "Utilisateurs convertis avec succès"
WScript.Quit
Sub ConvertUsers(oTopLevelContainer) Dim oObj
For Each oObj in oTopLevelContainer
Select Case oObj.Class ' Si c'est un objet User, on l'active Case "user" objUser.AccountDisabled = FALSE objUser.SetInfo
' Si c'est une OU, on boucle jusqu'à atteindre des objets Users Case "organizationalUnit" , "container" ConvertUsers(oObj) End select
Next End Sub
'### Fin script ### -- Jonathan BISMUTH MVP Windows Server - Directory Services MCSE 2000/ADSI-AutoIT Scripter Transcript (ID: 691839, code: MCSE2000) www.portail-mcse.net "Robby" a écrit dans le message de news: eOTWu4%
Bonjour Jonathan, Y a pas de mal pour le délai, mais concernant le script pourrais-tu m'en dire un peu plus ? Voir un exemple ? Merci d'avance, Robby. "Jonathan BISMUTH" a écrit dans le message de news: %23CqB%23K%
Bonjour Robby,
désolé pour le délais à répondre, ces derniers jours ont été très pénibles... Je vois que tu arrive à la fin, félicitations :)
Concernant ta question, c'est une option builtin de ADMT. Je te suggère de passer un petit script sur ton OU de migration pour décocher la case.
Cordialement, -- Jonathan BISMUTH MVP Windows Server - Directory Services MCSE 2000/ADSI-AutoIT Scripter Transcript (ID: 691839, code: MCSE2000) www.portail-mcse.net "Robby" a écrit dans le message de news:
Bonjour,
Et voila j'approche de la fin, il y a encore une petite chose à voir. Pourquoi quand je migre mes motsde passe avec PES, le compte user que je recupere sur la cible à de cocher "L'utilisateur devra changer de mot de passe" Alors que sur la source je ne l'ai pas de cocher. Donc de se fait, à chaque ouverture de session j'ai le msg; mot de passe expiré..
Merci d'avance,
Robby
Par contre ceci fonctionne mais uniquement pour l'option: DONT_EXPIRE_PASSWD
l'autre
option PASSWD_CANT_CHANGE ne fonctionne pas. Mais j'ai vu avec le logiciel
admodify que dans le fichier xml qui renvoi à l'interieur j'ai une erreur ID
de securité, tu peux voir le poste sur Mathieu.
'Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
Const ADS_UF_PASSWD_CANT_CHANGE = &H0040
'Set objUser = GetObject _
' ("LDAP://cn=als,ou=info,dcûru,dc=dyndns,dc=org")
'intUAC = objUser.Get("userAccountControl")
Set objUser = GetObject _
("LDAP://cn=als,ou=info,dcûru,dc=dyndns,dc=org")
intUAC = objUser.Get("userAccountControl")
'If ADS_UF_DONT_EXPIRE_PASSWD AND intUAC Then
' Wscript.Echo "Already enabled"
'Else
' objUser.Put "userAccountControl", intUAC XOR _
' ADS_UF_DONT_EXPIRE_PASSWD
' objUser.SetInfo
' WScript.Echo "Password never expires is now enabled"
If ADS_UF_PASSWD_CANT_CHANGE AND intuac Then
Wscript.Echo "Already enabled"
else
objUser.Put "userAccountControl", intUAC XOR _
ADS_UF_PASSWD_CANT_CHANGE
' objPasswordNoChangeFlag = objUser.UserFlags XOR
ADS_UF_PASSWD_CANT_CHANGE
' objUser.Put "userFlags", objPasswordNoChangeFlag
objUser.SetInfo
WScript.Echo "Password cant change is now enabled"
End If
'end if
"Robby" <fabrice@discussions.microsoft.com> a écrit dans le message de news:
%23J4tJyICHHA.3396@TK2MSFTNGP02.phx.gbl...
Merci Jonathan,
Ok mais ca j'avais compris, je l'ai deja fait et ca ne marche pas.
Les script s'execute mais ne modifie rien dans AD.
"Jonathan BISMUTH" <john@NOSPAM.free.fr> a écrit dans le message de news:
e63JS0CCHHA.4740@TK2MSFTNGP03.phx.gbl...
Ok, je ne connaissais pas ton niveau en scripting, désolé :(
appelle le active.vbs (ou tout ce que tu veux.vbs en fait). Tu peux le
lancer directement
- dans la ligne : "Set oContainer =
GetObject("LDAP://serveur-à-cibler/dc=domain,dc=ext")"
modifie : "serveur-à-cibler" par le nom de ton DC
dc=domain par dc=première partie de ton nom de domaine
dc=ext par dc= extension du domaine
par exemple :
- soit un serveur DC1 et un domaine toto.lan, la ligne serait Set
oContainer = GetObject("LDAP://DC1/dc=toto,dc=lan")
- soit un serveur DC2 et un domaine france.toto.lan, la ligne serait Set
oContainer = GetObject("LDAP://DC2/dc=france,dc=toto,dc=lan")
--
Jonathan BISMUTH
MVP Windows Server - Directory Services
MCSE 2000/ADSI-AutoIT Scripter
Transcript (ID: 691839, code: MCSE2000)
www.portail-mcse.net
"Robby" <fabrice@discussions.microsoft.com> a écrit dans le message de
news: eEWSfjACHHA.3924@TK2MSFTNGP02.phx.gbl...
J'ai essaye en ligne de commande:
wscript nomdufichier.vbs, j'ai bien la reponse "Utilisateurs convertis
avec succès"
mais dans l'AD, aucune modifs.
En plus je dois mettre en commantaire les lignes :
'Case "user"
' objUser.AccountDisabled = FALSE
' objUser.SetInfo
et vice-versa pour :
'Case "organizationalUnit" , "container"
' ConvertUsers(oObj)
si non ca plante, par contre quand je laisse l'une ou l'autre le script
se termine correctment, mais pas de modifs dans l'ad.
Encore merci, Robby.
"Robby" <fabrice@discussions.microsoft.com> a écrit dans le message de
news: ubZyEz$BHHA.3620@TK2MSFTNGP02.phx.gbl...
Merci Jonathan,
Je l'execute comment ?
Dois je créer un fichier ? si oui quel extension ?
Je le place au niveau de l'OU ? si oui comment ? dois je créer une GPO
?
va t-il fonctionner pour tous les utilisateurs ?
Comme tu peux le lire, je suis novice.
Merci d'avance,
Robby
"Jonathan BISMUTH" <john@NOSPAM.free.fr> a écrit dans le message de
news: uiWH8o$BHHA.4740@TK2MSFTNGP03.phx.gbl...
Re,
jette par exemple un coup d'oeil à ça (inspiré de ceci :
http://www.microsoft.com/technet/scriptcenter/scripts/ad/users/default.mspx?mfr=true) :
'### Début script ###
Set oContainer = GetObject("LDAP://serveur-à-cibler/dc=domain,dc=ext")
ConvertUsers(oContainer)
Set oContainer = Nothing
MsgBox "Utilisateurs convertis avec succès"
WScript.Quit
Sub ConvertUsers(oTopLevelContainer)
Dim oObj
For Each oObj in oTopLevelContainer
Select Case oObj.Class
' Si c'est un objet User, on l'active
Case "user"
objUser.AccountDisabled = FALSE
objUser.SetInfo
' Si c'est une OU, on boucle jusqu'à atteindre des objets Users
Case "organizationalUnit" , "container"
ConvertUsers(oObj)
End select
Next
End Sub
'### Fin script ###
--
Jonathan BISMUTH
MVP Windows Server - Directory Services
MCSE 2000/ADSI-AutoIT Scripter
Transcript (ID: 691839, code: MCSE2000)
www.portail-mcse.net
"Robby" <fabrice@discussions.microsoft.com> a écrit dans le message de
news: eOTWu4%23BHHA.3540@TK2MSFTNGP03.phx.gbl...
Bonjour Jonathan,
Y a pas de mal pour le délai, mais concernant le script pourrais-tu
m'en dire un peu plus ?
Voir un exemple ?
Merci d'avance,
Robby.
"Jonathan BISMUTH" <john@NOSPAM.free.fr> a écrit dans le message de
news: %23CqB%23K%23BHHA.3836@TK2MSFTNGP02.phx.gbl...
Bonjour Robby,
désolé pour le délais à répondre, ces derniers jours ont été très
pénibles...
Je vois que tu arrive à la fin, félicitations :)
Concernant ta question, c'est une option builtin de ADMT.
Je te suggère de passer un petit script sur ton OU de migration pour
décocher la case.
Cordialement,
--
Jonathan BISMUTH
MVP Windows Server - Directory Services
MCSE 2000/ADSI-AutoIT Scripter
Transcript (ID: 691839, code: MCSE2000)
www.portail-mcse.net
"Robby" <fabrice@discussions.microsoft.com> a écrit dans le message
de news: uYW0kY9BHHA.3604@TK2MSFTNGP03.phx.gbl...
Bonjour,
Et voila j'approche de la fin, il y a encore une petite chose à
voir.
Pourquoi quand je migre mes motsde passe avec PES, le compte user
que je recupere sur la cible à de cocher
"L'utilisateur devra changer de mot de passe"
Alors que sur la source je ne l'ai pas de cocher.
Donc de se fait, à chaque ouverture de session j'ai le msg; mot de
passe expiré..
Par contre ceci fonctionne mais uniquement pour l'option: DONT_EXPIRE_PASSWD l'autre option PASSWD_CANT_CHANGE ne fonctionne pas. Mais j'ai vu avec le logiciel admodify que dans le fichier xml qui renvoi à l'interieur j'ai une erreur ID de securité, tu peux voir le poste sur Mathieu. 'Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 Const ADS_UF_PASSWD_CANT_CHANGE = &H0040 'Set objUser = GetObject _ ' ("LDAP://cn=als,ou=info,dcûru,dc=dyndns,dc=org") 'intUAC = objUser.Get("userAccountControl") Set objUser = GetObject _ ("LDAP://cn=als,ou=info,dcûru,dc=dyndns,dc=org") intUAC = objUser.Get("userAccountControl") 'If ADS_UF_DONT_EXPIRE_PASSWD AND intUAC Then ' Wscript.Echo "Already enabled" 'Else ' objUser.Put "userAccountControl", intUAC XOR _ ' ADS_UF_DONT_EXPIRE_PASSWD ' objUser.SetInfo ' WScript.Echo "Password never expires is now enabled" If ADS_UF_PASSWD_CANT_CHANGE AND intuac Then Wscript.Echo "Already enabled" else objUser.Put "userAccountControl", intUAC XOR _ ADS_UF_PASSWD_CANT_CHANGE ' objPasswordNoChangeFlag = objUser.UserFlags XOR ADS_UF_PASSWD_CANT_CHANGE ' objUser.Put "userFlags", objPasswordNoChangeFlag objUser.SetInfo WScript.Echo "Password cant change is now enabled" End If 'end if
"Robby" a écrit dans le message de news: %
Merci Jonathan, Ok mais ca j'avais compris, je l'ai deja fait et ca ne marche pas. Les script s'execute mais ne modifie rien dans AD.
"Jonathan BISMUTH" a écrit dans le message de news:
Ok, je ne connaissais pas ton niveau en scripting, désolé :( appelle le active.vbs (ou tout ce que tu veux.vbs en fait). Tu peux le lancer directement
- dans la ligne : "Set oContainer = GetObject("LDAP://serveur-à-cibler/dc=domain,dc=ext")" modifie : "serveur-à-cibler" par le nom de ton DC dc=domain par dc=première partie de ton nom de domaine dc=ext par dc= extension du domaine
par exemple : - soit un serveur DC1 et un domaine toto.lan, la ligne serait Set oContainer = GetObject("LDAP://DC1/dc=toto,dc=lan") - soit un serveur DC2 et un domaine france.toto.lan, la ligne serait Set oContainer = GetObject("LDAP://DC2/dc=france,dc=toto,dc=lan")
-- Jonathan BISMUTH MVP Windows Server - Directory Services MCSE 2000/ADSI-AutoIT Scripter Transcript (ID: 691839, code: MCSE2000) www.portail-mcse.net "Robby" a écrit dans le message de news:
J'ai essaye en ligne de commande: wscript nomdufichier.vbs, j'ai bien la reponse "Utilisateurs convertis avec succès" mais dans l'AD, aucune modifs. En plus je dois mettre en commantaire les lignes : 'Case "user" ' objUser.AccountDisabled = FALSE ' objUser.SetInfo et vice-versa pour : 'Case "organizationalUnit" , "container" ' ConvertUsers(oObj) si non ca plante, par contre quand je laisse l'une ou l'autre le script se termine correctment, mais pas de modifs dans l'ad. Encore merci, Robby.
"Robby" a écrit dans le message de news: ubZyEz$
Merci Jonathan,
Je l'execute comment ? Dois je créer un fichier ? si oui quel extension ? Je le place au niveau de l'OU ? si oui comment ? dois je créer une GPO ? va t-il fonctionner pour tous les utilisateurs ? Comme tu peux le lire, je suis novice. Merci d'avance, Robby
"Jonathan BISMUTH" a écrit dans le message de news: uiWH8o$
Re,
jette par exemple un coup d'oeil à ça (inspiré de ceci : http://www.microsoft.com/technet/scriptcenter/scripts/ad/users/default.mspx?mfr=true) :
'### Début script ### Set oContainer = GetObject("LDAP://serveur-à-cibler/dc=domain,dc=ext")
ConvertUsers(oContainer) Set oContainer = Nothing
MsgBox "Utilisateurs convertis avec succès"
WScript.Quit
Sub ConvertUsers(oTopLevelContainer) Dim oObj
For Each oObj in oTopLevelContainer
Select Case oObj.Class ' Si c'est un objet User, on l'active Case "user" objUser.AccountDisabled = FALSE objUser.SetInfo
' Si c'est une OU, on boucle jusqu'à atteindre des objets Users Case "organizationalUnit" , "container" ConvertUsers(oObj) End select
Next End Sub
'### Fin script ### -- Jonathan BISMUTH MVP Windows Server - Directory Services MCSE 2000/ADSI-AutoIT Scripter Transcript (ID: 691839, code: MCSE2000) www.portail-mcse.net "Robby" a écrit dans le message de news: eOTWu4%
Bonjour Jonathan, Y a pas de mal pour le délai, mais concernant le script pourrais-tu m'en dire un peu plus ? Voir un exemple ? Merci d'avance, Robby. "Jonathan BISMUTH" a écrit dans le message de news: %23CqB%23K%
Bonjour Robby,
désolé pour le délais à répondre, ces derniers jours ont été très pénibles... Je vois que tu arrive à la fin, félicitations :)
Concernant ta question, c'est une option builtin de ADMT. Je te suggère de passer un petit script sur ton OU de migration pour décocher la case.
Cordialement, -- Jonathan BISMUTH MVP Windows Server - Directory Services MCSE 2000/ADSI-AutoIT Scripter Transcript (ID: 691839, code: MCSE2000) www.portail-mcse.net "Robby" a écrit dans le message de news:
Bonjour,
Et voila j'approche de la fin, il y a encore une petite chose à voir. Pourquoi quand je migre mes motsde passe avec PES, le compte user que je recupere sur la cible à de cocher "L'utilisateur devra changer de mot de passe" Alors que sur la source je ne l'ai pas de cocher. Donc de se fait, à chaque ouverture de session j'ai le msg; mot de passe expiré..