2009-07-17 5 views
0

Comment fonctionne la propriété userAccountControl dans AD? Supposons que je souhaite créer un nouveau compte d'utilisateur et le définir sur Activé (il est désactivé par défaut) et que l'option «Le mot de passe n'expire jamais» soit également définie sur Vrai. Je peux faire quelque chose comme ça et il fonctionne:Comment fonctionne la propriété userAccountControl dans AD? (C#)

//newUser is a DirectoryEntry object 
newUser.Properties["userAccountControl"].Value = 0x200; // normal account 
newUser.Properties["userAccountControl"].Value = 0x10000; //password never expires 

Normalement, je pense que la deuxième ligne effacerait le premier, mais il ne fonctionne pas. Comment ça marche? Puis-je les combiner en une ligne? Comment puis-je enlever cette valeur si je voulais que leur mot de passe expire? Merci!

Répondre

2

En fait, le réglage de la deuxième valeur sera en effet effacer le premier - point est que, la première est vraiment un peu « inutile » .....

Et bien sûr, vous pouvez les combiner (et multiples les , vraiment) en une seule valeur et définir avec une seule mission:

const int UF_ACCOUNTDISABLE = 0x0002; 
const int UF_PASSWD_NOTREQD = 0x0020; 
const int UF_PASSWD_CANT_CHANGE = 0x0040; 
const int UF_NORMAL_ACCOUNT = 0x0200; 
const int UF_DONT_EXPIRE_PASSWD = 0x10000; 
const int UF_SMARTCARD_REQUIRED = 0x40000; 
const int UF_PASSWORD_EXPIRED = 0x800000; 

int userControlFlags = UF_PASSWD_NOTREQD + UF_NORMAL_ACCOUNT + UF_DONT_EXPIRE_PASSWD; 

newUser.Properties["userAccountControl"].Value = userControlFlags; 

Marc

1

(Almost) Everything In Active Directory via C#

Comment définir un drapeau:

int val = (int)newUser.Properties["userAccountControl"].Value; 
newUser.Properties["userAccountControl"].Value = val | 0x10000; //password never expires 
newUser.CommitChanges(); 
2

Vous combinerait les drapeaux, si 0x200 + 0x10000, qui serait 0x10200. Voir cet article pour plus d'informations: http://support.microsoft.com/kb/305144.

+1

+1 pour la précieuse liste des drapeaux qui décrit la signification de chacun. – Tim

Questions connexes