我試圖寫一些(其中包括)將用戶添加到AD組 - 使用VS2010,.Net4和System.DirectoryServices.AccountManagement
中的庫設施。奇怪的COM互操作異常0x80005000使用System.DirectoryServices.AccountManagement庫
我已經通過下面的示例代碼獲得了用戶和組,並且這適用於其他操作,如啓用或禁用帳戶。
group = System.DirectoryServices.AccountManagement.GroupPrincipal.FindByIdentity(_UserContext, Name);
user = System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(_UserContext, Name);
現在,試圖將用戶添加到組,如:
group.Members.Add(user);
我得到一個錯誤堆棧跟蹤開始像一個下面一個COM互操作錯誤中列出0x80005000(未知)。其他用戶以及32位和64位版本也會發生這種情況。在網上搜索這個提出了一些論壇問題,但我找不到任何答案。從理論上講,這應該起作用 - this codeproject sample也在做同樣的事情。
有沒有人看到這個錯誤或有任何想法可能會導致它?
堆棧跟蹤頂部:
Unhandled Exception: System.DirectoryServices.AccountManagement.PrincipalOperati
onException: Unknown error (0x80005000) ---> System.Runtime.InteropServices.COME
xception: Unknown error (0x80005000)
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_AdsObject()
at System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne
)
at System.DirectoryServices.DirectorySearcher.FindOne()
at System.DirectoryServices.AccountManagement.ADStoreCtx.IsMemberOfInStore(Gr
oupPrincipal g, Principal p)
--- End of inner exception stack trace ---
at System.DirectoryServices.AccountManagement.ADStoreCtx.IsMemberOfInStore(Gr
oupPrincipal g, Principal p)
at System.DirectoryServices.AccountManagement.PrincipalCollection.ContainsNat
iveTest(Principal principal)
at System.DirectoryServices.AccountManagement.PrincipalCollection.Contains(Pr
incipal principal)
at System.DirectoryServices.AccountManagement.PrincipalCollection.Add(Princip
al principal)
at System.DirectoryServices.AccountManagement.PrincipalCollection.Add(UserPri
ncipal user)
是的,我找到了一些類似的東西,並使用該解決方法。 – ConcernedOfTunbridgeWells 2010-11-26 16:15:26