Je précise que je ne suis pas informaticien... quoi ? vous l'aviez devinné ?
Vous devez avoir une solution je pense.
Merci à vous !
|
|||||||||||
| Le Forum de Référence sur les Technologies Microsoft - http://www.forum-microsoft.org | |||||||||||
Modérateur: Modérateurs_Systèmes







birdie a écrit:et d'éviter de faire propriéte, compte a chaque fois.

birdie a écrit:et il n'existe pas de petits logiciles qui permettent
de passer en revue les differents utilisateurs ?
et de cocher dans un tableau que le mot de passe n'expire jamais?
du style:
mot de passe expire
oui non
alain | X
bruno | X
catherine | X
etc...
ça n'existe pas ça ?
ça me perttrait d'aller plus vite...
et d'éviter de faire propriéte, compte a chaque fois.


On Error Resume Next
Const USERS_LIST = "UsersList.csv"
Const ForWriting = 2
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
Set objRootDSE = GetObject("LDAP://rootDSE" )
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set fsoListUsers = objFSO.OpenTextFile(USERS_LIST, ForWriting, True)
ListOU("OU=SousOU,OU=OURacine")
fsoListUsers.Close
Wscript.Echo "Terminé"
Sub ListOU(strOU)
Set objOU = GetObject("LDAP://" & strOU & "," & objRootDSE.Get("defaultNamingContext"))
objOU.Filter = Array("organizationalUnit","user")
For Each objItem In objOU
If objItem.Class = "user" Then
If IsExpirePassword(objItem.Name,strOU) Then
fsoListUsers.Writeline objItem.Name & VbTab & strOU & VbTab & ""
Else
fsoListUsers.Writeline objItem.Name & VbTab & strOU & VbTab & "x"
End If
End If
If objItem.Class = "organizationalUnit" Then
ListOU(objItem.Name & "," & strOU)
End If
Next
End Sub
Function IsExpirePassword(strUser,strOU)
Set objUser = GetObject ("LDAP://" & strUser & "," & strOU & "," & objRootDSE.Get("defaultNamingContext"))
intUAC = objUser.Get("userAccountControl")
If ADS_UF_DONT_EXPIRE_PASSWD AND intUAC Then
IsExpirePassword = FALSE
Else
IsExpirePassword = TRUE
End If
End FunctionOn Error Resume Next
Const USERS_LIST = "UsersList.txt"
Const ForReading = 1
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
Set objRootDSE = GetObject("LDAP://rootDSE" )
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set fsoListUsers = objFSO.OpenTextFile(USERS_LIST, ForReading)
Main()
fsoListUsers.Close
Wscript.Echo "Terminé"
Sub Main()
Do Until fsoListUsers.AtEndOfStream
strFileInfo = fsoListUsers.ReadLine
arrFileInfo = Split(strFileInfo," ")
strUser = arrFileInfo(0)
strOU = arrFileInfo(1)
strPasswordOption = arrFileInfo(2)
If Ucase(strPasswordOption) = "X" Then
SetPasswordNeverExpire strUser,strOU,TRUE
Else
SetPasswordNeverExpire strUser,strOU,FALSE
End If
Loop
End Sub
Sub SetPasswordNeverExpire(strUser,strOU,Enable)
Set objUser = GetObject ("LDAP://" & strUser & "," & strOU & "," & objRootDSE.Get("defaultNamingContext"))
intUAC = objUser.Get("userAccountControl")
If Enable Then
If ADS_UF_DONT_EXPIRE_PASSWD AND intUAC Then
Else
objUser.Put "userAccountControl", intUAC XOR ADS_UF_DONT_EXPIRE_PASSWD
objUser.SetInfo
End If
Else
If ADS_UF_DONT_EXPIRE_PASSWD AND intUAC Then
objUser.Put "userAccountControl", intUAC XOR ADS_UF_DONT_EXPIRE_PASSWD
objUser.SetInfo
End If
End If
End Sub
Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invités