J'ai rédigé un script vbs pour créer un millier de comptes utilisateur, et je souhaite activer "l'utilisateur ne peut pas changer de mot de passe"
Le code proposé par Microsoft
http://www.microsoft.com/technet/t [...] efault.asp
est
Const ADS_ACETYPE_ACCESS_DENIED_OBJECT = &H6
Const ADS_ACEFLAG_OBJECT_TYPE_PRESENT = &H1
Const CHANGE_PASSWORD_GUID = "{ab721a53-1e2f-11d0-9819-00aa0040529b}"
Const ADS_RIGHT_DS_CONTROL_ACCESS = &H100
Set objUser = GetObject("LDAP://cn=utilisateur,ou=classe,dc=collègebidule,dc=fr" )
Set objSD = objUser.Get("ntSecurityDescriptor" )
Set objDACL = objSD.DiscretionaryAcl
arrTrustees = array("nt authority\self", "EVERYONE" )
For Each strTrustee in arrTrustees
Set objACE = CreateObject("AccessControlEntry" )
objACE.Trustee = strTrustee
objACE.AceFlags = 0
objACE.AceType = ADS_ACETYPE_ACCESS_DENIED_OBJECT
objACE.Flags = ADS_ACEFLAG_OBJECT_TYPE_PRESENT
objACE.ObjectType = CHANGE_PASSWORD_GUID
objACE.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS
objDACL.AddAce objACE
Next
objSD.DiscretionaryAcl = objDACL
objUser.Put "nTSecurityDescriptor", objSD
objUser. SetInfo
Or j'ai un message d'erreur : erreur : structure d'ID de sécurité non valide
à l'avant dernière ligne de code objUser.Put "nTSecurityDescriptor", objSD
Tout le reste est OK sauf ce point.
Merci d'avance