0

動作しているターゲットと失敗しているターゲットの両方が同じドメイン内のマシンです。コードは下にあります。ドメイン内の一部のマシンに対して使用すると、「認証グループを取得しようとしたときにエラー(1332)が発生しました」というメッセージとともにSystem.DirectoryServices.AccountManagement.PrincipalOperationExceptionが発生します。エラーは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);
            }
        }
    }
4

1 に答える 1

0

あなたがまだこれに問題を抱えているかどうかはわかりません... 私はほとんど同じ問題を抱えていて、どちらも長い間それを理解できませんでした. 最後に、プリンシパルコンテキストのインスタンス化からユーザー名/パスワードを削除すると、すべてのマシンで機能しました...本当に奇妙でしたが、私たちは満足しました.

ユーザー名/パスワードがなければ、現在のアカウントで実行され、通常、すべての認証済みユーザーは、同じドメイン (少なくとも私たちのドメイン) のリモート マシンからグループ情報を読み取ることができます。ユーザー名/パスワードを指定すると、ドメイングループのみが返されることもあれば、グループがまったく返されないこともあれば、拒否されたメッセージにアクセスすることもあるなど、非常に奇妙な結果が得られます...とにかく、これはうまくいきました.

于 2010-06-22T14:47:42.647 に答える