2017-09-21 19 views
0

アクティブなディレクトリにあるユーザーアカウントのマネージャーアカウントを取得しようとしています。あなたが見ることができるようにここでActive Directory - (識別名から)マネージャーアカウントを取得

は私が持っているコード..

using System.DirectoryServices; 
using System.DirectoryServices.ActiveDirectory; 


DirectoryContext directoryContext = new DirectoryContext(DirectoryContextType.Domain, "MyDomain"); 
Domain domain = Domain.GetDomain(directoryContext); 

// Find MY directory Entry 
DirectorySearcher search = new DirectorySearcher(domain.GetDirectoryEntry()) 
{ 
    Filter = String.Format("(SAMAccountName={0})", "<my user id>") 
}; 
search.PropertiesToLoad.Add("displayName"); 
search.PropertiesToLoad.Add("mail"); 
search.PropertiesToLoad.Add("manager"); 
DirectoryEntry userAccount = search.FindOne()?.GetDirectoryEntry(); 

だ、

= マネージャ名 CN、OUとして要求して戻ってくるさマネージャと呼ばれるプロパティがありますDC = MyDomain、DC = xxx、DC = zzzzz

CN = マネージャ名はので、どのように私は今、ああ、私のマネージャー

答えて

0

のためのADエントリを見つけることができます...フルネームではなく、ログインID/のにSAMAccountName(私はMY ADエントリが検索時に使用されるようです...あなたは、Googleが答えを知って求める権利問題を知っているときに...私はCN .....文字列がdistinguishedNameの

if (userAccount.Properties["manager"].Value != null) 
{ 
    DirectorySearcher search2 = new DirectorySearcher(domain.GetDirectoryEntry()) 
    { 
    Filter = string.Format("(distinguishedName={0})", userAccount.Properties["manager"].Value) 
    }; 
    search2.PropertiesToLoad.Add("displayName"); 
    search2.PropertiesToLoad.Add("mail"); 
    search2.PropertiesToLoad.Add("manager"); 
    DirectoryEntry mgrAcc = search2.FindOne()?.GetDirectoryEntry(); 
} 
として知られていたことを知りませんでした
関連する問題