System.DirectoryServices.AccountManagement函数无法探测某些计算机(但不能探测其他计算机)

时间:2010-05-21 17:36:47

标签: .net probing

工作目标和失败目标都是同一域中的计算机。代码低于以下。当我对我域中的某些机器使用它时,我得到一个System.DirectoryServices.AccountManagement.PrincipalOperationException,并显示一条消息:“在尝试检索授权组时,发生了错误(1332)。” GetAuthorizationGroups()抛出错误。

注意:在两种情况下,我用来连接的用户名都是本地管理员。

    PrincipalContext ctx = new PrincipalContext(ContextType.Machine, machineName, domainname + "\\" + adminusername, pass);
    List<Principal> retList = new List<Principal>();

    using (var user = UserPrincipal.FindByIdentity(ctx, probedusername))
    {
        if (user != null)
        {
            PrincipalSearchResult<Principal> groups = user.GetAuthorizationGroups();
            foreach (Principal group in groups)
            {
                retList.Add(group);
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

我不知道你是否还有这方面的问题......我的问题几乎完全相同,我们也无法解决最长的问题。最后,我们从PrincipalContext实例中删除了用户名/密码,它在所有机器上运行......真的很奇怪,但它让我们感到高兴。

没有用户名/密码,它在当前帐户下运行,通常所有经过身份验证的用户都可以从同一域(至少在我们的域中)的远程计算机上读取组信息。使用指定的用户名/密码,我们将获得非常奇怪的结果,有时只有域组会回来,有时根本没有组,有时会访问被拒绝的消息......无论如何这对我们有用。