0

AD でロックされたアカウントのロックを解除するときに、いくつかの問題が発生しています。

とてもシンプルにします。アカウントが現在ロックされていると仮定しています。

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

oUserPrincipal は、PrincipalContext を介して TEST AD の管理者アカウントを使用して返されます

今 ..

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)
4

1 に答える 1

0

使用しているサービスユーザーがアカウントのロックを解除する権限を持っていることを確認しますか?以前、管理者権限を持っているがアカウントのロック解除を拒否されたサービスユーザーがいるという状況を経験しました。また、ロックを解除するア​​カウントの権限が、ロックを解除するア​​カウントよりも高い場合は、うまく機能しないと思います。それをテストするには、自分のADアカウントにアカウントのロックを解除する特権があるかどうかを確認します。まず、Active Directoryユーザーとコンピューターでアカウントのロックを解除して試してから、成功したらコードで再試行します。これが理にかなっていることを願っています。

于 2010-11-18T03:59:06.530 に答える