私はC#を初めて使用し、C#を使用してActive Directoryからデータをプルし、Excelファイルに出力することを検討しています。私はいくつかのチュートリアルを見てきましたが、これを行う方法に混乱しています。userID、Department、Nameを取得したいと思っています。.FindAll()機能を使用してこれを行うにはどうすればよいですか?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;
namespace ADquery
{
class UserLookUp
{
static void Main(string[] args)
{
Console.WriteLine(retrieveUsers());
Console.ReadLine();
}
public static string retrieveUsers()
{
string path = ("LDAP://OU=IS,OU=People,DC=Corporate,DC=Amfam,DC=com");
//Init instance of DirectoryEntry
DirectoryEntry dEntry = new DirectoryEntry(path);
DirectorySearcher dSearcher = new DirectorySearcher(dEntry);
//Establish filter (all users)?
dSearcher.Filter = "(&(objectCategory=person)(objectClass=user)(cn=*))";
foreach (SearchResult searchResults in dSearcher.FindAll())
{
if (searchResults.Properties["CN"][0].ToString() != null)
{
//pull info desired
ResultPropertyValueCollection valueCollection =
searchResults.Properties["manager"];
foreach (Object propertyValue in valueCollection)
{
Console.WriteLine("Property Value: " + (string)propertyValue.ToString());
}
Console.WriteLine(" ");
catch ( InvalidOperationException iOe )
{
dSearcher.Dispose();
}
catch ( NotSupportedException nSe )
{
}
finally
{
if(sResults != null)
sResults.Dispose();
}
/*
// Create new Excel file.
var excelFile = new ExcelFile();
// Foreach DataTable, add new worksheet and insert data from DataTable into it.
foreach (DataTable dataTable in dataSet.Tables)
excelFile.Worksheets.Add(dataTable.TableName).InsertDataTable(dataTable, 0, 0, true);
// Save Excel file to XLS format.
excelFile.SaveXls(dataSet.DataSetName + ".xls"); *
*/
}
}
}
}
}