Windowsフォームアプリで ActiveDirectoryへ接続し、ActiveDirectoryのプロパティをリストアップするツールを作成しました。
ソースコードは GitHub で公開しています。
接続先を変更し「検索」ボタンをクリックすると、「結果」欄に ActiveDirectoryのプロパティ名と値がリストアップされる。
・(ドメイン)を ○○.co.jp などの所属しているドメインへ変更。
・(ユーザアカウント名)と(ユーザアカウントのパスワード)を、Windows OS にログインする際のアカウントへ変更。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
private void button1_Click(object sender, EventArgs e) { var directoryPath = "LDAP://(ドメイン)"; var userName = @"(ドメイン)\(ユーザアカウント名)"; var password = "(ユーザアカウントのパスワード)"; DirectoryEntry directoryEntry = new DirectoryEntry(directoryPath, userName, password); using (var searcher = new DirectorySearcher(directoryEntry)) { // 一つのみ指定する場合。 searcher.Filter = (string.Format("(objectSid={0})", txtSID.Text)); // 複数指定する場合。 //searcher.Filter = ("(|(objectSid=S-9-9-99-999999999-9999999999-9999999999-1000)(objectSid=S-9-9-99-999999999-9999999999-9999999999-1001))"); var results = searcher.FindAll(); // Iterate through each SearchResult in the SearchResultCollection. foreach (SearchResult searchResult in results) { // Display the path of the object found. txt結果.Text += "\r\n" + string.Format("Search properties for {0}", searchResult.Path) + "\r\n"; // Iterate through each property name in each SearchResult. foreach (string propertyKey in searchResult.Properties.PropertyNames) { // Retrieve the value assigned to that property name // in the ResultPropertyValueCollection. ResultPropertyValueCollection valueCollection = searchResult.Properties[propertyKey]; // Iterate through values for each property name in each // SearchResult. foreach (Object propertyValue in valueCollection) { // Handle results. Be aware that the following // WriteLine only returns readable results for // properties that are strings. txt結果.Text += string.Format("{0}:{1}", propertyKey, propertyValue.ToString()) + "\r\n"; } } } //var result1 = result.PropertiesLoaded(); //return result; } } |
コメント