monsi1 - Do 16.08.07 14:44
Titel: ActiveDirectory-Problem gesperrte UserAccount's
Hallo!
Ich habe folgendes Problem. Mein Programm soll alle Mitglieder einer bestimmten AD-Gruppe überprüfen ob sie gesperrt sind, und gegebenenfalls wieder entsperren.
Soweit hab ich mir den Code ja schon zusammengegoogeld ;-) und die Accounts werden auch schon wieder entsperrt.
Nun wollte ich auch noch in einem Log-File mitprotokollieren welche Accont's wieder entsperrt worden sind. Dazu muß ich aber vorher abfragen ob das Account gestperrt ist, und dabei hab ich so meine Probleme.
Mit der Zeile 8 unten im Source komme ich nicht ganz klar. Sie sollte eigentlich true zurückliefern wenn das Account gesperrt ist. Bei mir dürfte es aber immer true sein, da immer alle Accounts entsperrt werden.
Kann mir dabei jemand helfen?
Danke im Voraus, monsi1
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| for (int i = 0; i < propertyCount; i++) { dn = (String)result.Properties["member"][i]; DirectoryEntry user = new DirectoryEntry("LDAP://" + dn, null, null, AuthenticationTypes.Secure); userName = (string)user.Properties["Name"].Value; if ((int)user.Properties["userAccountControl"].Value != 0) { if (((int)user.Properties["userAccountControl"].Value & (int)ADAccountOptions.UF_ACCOUNT_LOCKOUT) == 0 { user.Properties["LockOutTime"].Value = 0; user.CommitChanges(); user.Close();
string myPath = System.Reflection.Assembly.GetExecutingAssembly().Location; myPath = System.IO.Path.GetDirectoryName(myPath);
StreamWriter w = File.AppendText(myPath + @"\\UnlockUsers.log"); w.WriteLine(DateTime.Now.ToLongTimeString() + " " + DateTime.Now.ToLongDateString() + ", Benutzer '" + userName + "' wurde entsperrt"); w.Close(); } } } |
monsi1 - Do 16.08.07 16:10
Titel: Re: ActiveDirectory-Problem gesperrte UserAccount's
Hallo!
Hab die Lösung für mein Problem mittlerweile selbst gefunden.
Falls es noch jemanden interessiert, unten der funktionierende Code.
LG, monsi1
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| for (int i = 0; i < propertyCount; i++) { dn = (String)result.Properties["member"][i]; DirectoryEntry user = new DirectoryEntry("LDAP://" + dn, null, null, AuthenticationTypes.Secure); userName = (string)user.Properties["Name"].Value; bool isAccountLocked = (bool)user.InvokeGet("IsAccountLocked"); if (isAccountLocked) { user.Properties["LockOutTime"].Value = 0; user.CommitChanges(); user.Close();
string myPath = System.Reflection.Assembly.GetExecutingAssembly().Location; myPath = System.IO.Path.GetDirectoryName(myPath);
StreamWriter w = File.AppendText(myPath + @"\\UnlockUsers.log"); w.WriteLine(DateTime.Now.ToLongTimeString() + " " + DateTime.Now.ToLongDateString() + ", Benutzer '" + userName + "' wurde entsperrt"); w.Close(); } } |