System.DirectoryServices.AccountManagement名前空間を使用して、ドメインユーザーとそれに対応するADセキュリティグループを検索しています。これはうまく機能します。
また、その名前空間を使用して、リモートサーバー上のローカルセキュリティグループにクエリを実行しています。セキュリティグループを見つけて、そのグループのユーザーを問題なく一覧表示できます。
私が問題を抱えているのは、DOMAINユーザーが属するLOCALグループを表示することです。
PrincipalContext localmachine = new PrincipalContext(ContextType.Machine, "ServerName");
PrincipalContext domain = new PrincipalContext(ContextType.Domain);
// find the user using the domain context (Works fine)
UserPrincipal user = UserPrincipal.FindByIdentity(domain, userName);
// if found - grab its groups
if (user != null)
{
// The get groups method is the only method that would accept a new context
PrincipalSearchResult<Principal> groups = user.GetGroups(localMachine);
// no groups are returned .... removed rest of code
}
localMachine PrincipalContextを渡すGetGroupsメソッドを使用しようとしていますが、グループが返されません。
ユーザーはドメインADにのみ存在します。localMachineのローカルユーザーにこのユーザーのエントリはありません。ドメインユーザーはローカルセキュリティグループに追加されます。
何か案は?このドメインユーザーが属するすべてのローカルグループのリストを取得して、特定のグループがそのリストに存在するかどうかを確認できるようにしたいと思います。現在機能している唯一のオプションは、システム上の特定のグループを検索し、ドメインユーザーがそのグループに属しているかどうかを確認することです。