私はSystem.DirectoryServices.AccountManagement名前空間を使用して、ドメインユーザーとその対応するADセキュリティグループを検索しています。これはうまくいく。ドメインユーザーが所属するローカルグループを検索しますか?
また、この名前空間を使用してリモートサーバーのローカルセキュリティグループを照会しています。セキュリティグループを見つけて、そのグループのユーザーを問題なくリストすることができます。
は、私が表示されるとの問題を抱えていることは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のローカルユーザにこのユーザのエントリはありません。ドメインユーザーは、ローカルセキュリティグループに追加されます。
アイデア?私は、このドメインユーザーが所属するすべてのローカルグループの一覧を取得し、特定のグループがその一覧に存在するかどうかを確認することができます。現在動作している唯一のオプションは、システム上の特定のグループを検索し、ドメインユーザーがそのグループに属しているかどうかを確認することです。
同様の質問ここのhttp:/ /stackoverflow.com/questions/4809460/determine-nested-groups-of-windowsidentity-instance – dash
私はこのようにしてみました。 FindByIdentityメソッドは、マシン上でユーザーを探すときにnullを返します。実際のローカルユーザーが作成されていないためです。これはドメインユーザーです。私は、ドメイン名を前に付けて、または付けずに、ユーザー名を渡してみました。 –
古いコードを掘り下げて、私はあなたが説明した通りにそれをやったことがわかりました。 (DirectorySearcherを使用して)ローカルマシングループを列挙し、それらを列挙して、ユーザーがメンバーであるグループを見つけることができるかどうかを確認します。私たちはかなり浅い階層も持っていました。申し訳ありませんより多くのヘルプのことはできません。 – dash