Active Directory内のグループからユーザーと連絡先を取得する際に解決策を探していましたが、検索できませんでした。Active Directory内のグループからすべてのユーザーと連絡先を取得
私は、彼らがセキュリティプリンシパルではありませんので、私は連絡先にユーザーと同じ方法を取得カントことを理解できますか?
私はグループ内のすべてのユーザーを取得するには、このコードを使用し、これは連絡先から名前、および携帯電話番号を取得するために拡張することが可能でしょうか?それとも新しいものを書く必要がありますか?
var context = new PrincipalContext(ContextType.Domain, "MY_DOMAIN");
using (var searcher = new PrincipalSearcher())
{
var groupName = "MY_GROUP";
var sp = new GroupPrincipal(context, groupName);
searcher.QueryFilter = sp;
var group = searcher.FindOne() as GroupPrincipal;
if (group == null)
Console.WriteLine("Invalid Group Name: {0}", groupName);
foreach (var f in group.GetMembers())
{
var principal = f as UserPrincipal;
if (principal == null || string.IsNullOrEmpty(principal.Name))
continue;
DirectoryEntry entry = (principal.GetUnderlyingObject() as DirectoryEntry);
DirectorySearcher entrySearch = new DirectorySearcher(entry);
entrySearch.PropertiesToLoad.Add("mobile");
entrySearch.PropertiesToLoad.Add("sAMAccountName");
entrySearch.PropertiesToLoad.Add("name");
SearchResultCollection results = entrySearch.FindAll();
ResultPropertyCollection rpc = results[0].Properties;
foreach (string rp in rpc.PropertyNames)
{
if (rp == "mobile")
Console.WriteLine(rpc["mobile"][0].ToString());
if(rp == "sAMAccountName")
Console.WriteLine(rpc["sAMAccountName"][0].ToString());
}
お世話になりました。私は、DirectoryEntryとサーチャーを使ってグループメンバーを見つけ、それらを新しいエントリーにロードしました。完璧に働いた。 –
@ThorsteinLøkensgard私はうまくいきました。この回答を受け入れてください:) – Ashigore