在AD用户搜索中,可以使用PowerShell的Get-ADUser cmdlet和C#的DirectorySearcher类来进行搜索。下面是使用这两种方法的代码示例:
# 导入Active Directory模块
Import-Module ActiveDirectory
# 使用Get-ADUser cmdlet进行搜索
$users = Get-ADUser -Filter {Surname -like "Smith"} -Properties GivenName, Surname, EmailAddress
# 输出搜索结果
foreach ($user in $users) {
Write-Host "姓名: $($user.GivenName) $($user.Surname)"
Write-Host "邮箱: $($user.EmailAddress)"
Write-Host "------"
}
using System;
using System.DirectoryServices;
class Program
{
static void Main()
{
// 创建DirectoryEntry对象连接到Active Directory
using (DirectoryEntry entry = new DirectoryEntry("LDAP://OU=Users,DC=example,DC=com"))
{
// 创建DirectorySearcher对象并设置过滤条件
using (DirectorySearcher searcher = new DirectorySearcher(entry))
{
searcher.Filter = "(&(objectCategory=person)(objectClass=user)(sn=Smith))";
searcher.PropertiesToLoad.Add("givenName");
searcher.PropertiesToLoad.Add("sn");
searcher.PropertiesToLoad.Add("mail");
// 执行搜索并遍历结果
SearchResultCollection results = searcher.FindAll();
foreach (SearchResult result in results)
{
Console.WriteLine("姓名: " + result.Properties["givenName"][0]);
Console.WriteLine("邮箱: " + result.Properties["mail"][0]);
Console.WriteLine("------");
}
}
}
}
}
上述示例代码可以根据姓氏(例如"Smith")进行AD用户搜索,并输出找到的用户的姓名和邮箱。根据实际情况,你可以根据需要修改过滤条件和要加载的属性。
上一篇:AD用户属性返回属性名而不是值
下一篇:AD用户组过滤