我正在嘗試使用UserPrincipal的GetGroups方法。如果用戶帳戶位于包含正斜杠的OU中,則對GetGroups的調(diào)用將失敗,并出現(xiàn)COM未知錯誤0x80005000。找到該用戶帳戶只是找到,我可以訪問其他屬性。如果我在OU名稱中刪除了斜杠,則一切正常。我找到了一個在名稱中轉(zhuǎn)義斜杠的引用,但該引用包裝在GetGroups方法下。我還發(fā)現(xiàn)確保使用已完成的PrincipalContext(ContextType,String)構(gòu)造函數(shù)。我還嘗試過將FQDN與轉(zhuǎn)義的斜杠一起使用,并獲得相同的結(jié)果。我在C#下面有一些示例代碼:我正在使用Visual Studio2012。該代碼在Windows 10 Enterprise x64上運(yùn)行。.net目標(biāo)版本為4.5using System;using System.Linq;using System.DirectoryServices.AccountManagement;string SamAccountName = "user1";//The OUs the user is in://Broken OU: "OU=Test / Test,DC=contoso,DC=com"//Working OU: "OU=Test & Test,DC=contoso,DC=com"PrincipalContext domainContext = new PrincipalContext(ContextType.Domain, Environment.UserDomainName);UserPrincipal user = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, SamAccountName);//The user was found so this worksConsole.WriteLine("User Found: {0}", user.DistinguishedName);//This causes COM Exception: Unknown Error 0x80005000 string output = string.Join(Environment.NewLine, user.GetGroups().Select(x => x.Name).ToArray());Console.WriteLine(output);最終,我只用OU名稱替換了這些特殊字符中的任何一種,因?yàn)榈侥壳盀橹惯@是最簡單的解決方案。我主要是對確保所編寫的代碼不會在將來爆炸而感到好奇。
- 1 回答
- 0 關(guān)注
- 162 瀏覽
添加回答
舉報(bào)
0/150
提交
取消