Разблокируйте учетную запись Active-Directory с помощью Systems.directoryservices.AccountManagement в c # - PullRequest
0 голосов
/ 10 ноября 2010

У меня возникают некоторые проблемы при разблокировке заблокированной учетной записи в AD.

Я сделаю это очень просто.Я предполагаю, что учетная запись в настоящее время заблокирована.

UserPrincipal oUserPrincipal = ADMethods.GetUser("test.user");  
oUserPrincipal.UnlockAccount();  
oUserPrincipal.Save();`

oUserPrincipal возвращается с использованием учетной записи администратора в TEST AD, хотя PrincipalContext

Now ..

oUserPrincipal.UnlockAccount ();генерирует исключение

System.UnauthorizedAccessException

При проверке журналов на «Тестовом сервере AD» возвращается неудачное согласование о том, что «test.user» заблокирован.Так как я возвращаю пользователя с учетной записью администратора, почему метод unlockAccount генерирует ошибку?

Буду признателен за вашу помощь.

Исключение составляет следующее.

System.UnauthorizedAccessException: Access is denied.

   at System.DirectoryServices.Interop.UnsafeNativeMetho  ds.IAds.SetInfo()
   at System.DirectoryServices.DirectoryEntry.CommitChan  ges()
   at System.DirectoryServices.AccountManagement.SDSUtil  s.WriteAttribute(String dePath, String attribute, Int32 value, NetCred credentials, AuthenticationTypes authTypes)
   at System.DirectoryServices.AccountManagement.ADStore  Ctx.WriteAttribute(Principal p, String attribute, Int32 value)
   at System.DirectoryServices.AccountManagement.ADStore  Ctx.UnlockAccount(AuthenticablePrincipal p)
   at System.DirectoryServices.AccountManagement.Account  Info.UnlockAccount()
   at ADMethodsAccountManagement.UnlockUserAccount(Strin  g sUserName) in C:\Users\christian.debono\documents\visual studio 2010\Projects\UnlockApp\UnlockApp\ADMethodsAccount  Management.cs:line 182
   at UnlockApp.Form1.UnlockButton_Click(Object sender, EventArgs e) in C:\Users\christian.debono\documents\visual studio 2010\Projects\UnlockApp\UnlockApp\Form1.cs:line 30
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventAr  gs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.O  nMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.W  ndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

1 Ответ

0 голосов
/ 18 ноября 2010

Вы уверены, что у пользователя службы, которого вы используете, есть права на разблокировку учетных записей? Раньше я сталкивался с ситуацией, когда у нас есть пользователь службы, у которого есть права администратора, но он был отклонен при разблокировке учетных записей, а также если у разблокируемой учетной записи есть более высокие разрешения, чем у разблокирующей учетной записи, которая также не будет работать, я думаю, лучший способ чтобы проверить, есть ли у вашей собственной учетной записи AD привилегия разблокировать учетную запись, попробуйте сначала в разделе «Пользователи и компьютер Active Directory», разблокировав указанную учетную запись, а затем в случае успеха попробуйте снова выполнить код. Надеюсь, что это имеет смысл.

...