Под термином «LDAP Query PowerShell» подразумевается выполнение запросов LDAP (облегченного протокола доступа к каталогам) с использованием PowerShell — языка сценариев, разработанного Microsoft. Запросы LDAP позволяют искать и получать информацию из таких каталогов, как Active Directory.
Вот несколько методов выполнения запросов LDAP с помощью PowerShell, а также примеры кода:
Метод 1: использование класса System.DirectoryServices.DirectorySearcher
$domain = "ldap://example.com"
$searchRoot = New-Object System.DirectoryServices.DirectoryEntry($domain)
$searcher = New-Object System.DirectoryServices.DirectorySearcher($searchRoot)
$searcher.Filter = "(objectClass=user)"
$searcher.PageSize = 1000
$result = $searcher.FindAll()
foreach ($entry in $result) {
# Process each search result entry
$dn = $entry.Properties["distinguishedName"]
$name = $entry.Properties["name"]
Write-Host "DN: $dn, Name: $name"
}
Способ 2: использование командлета Get-ADObject из модуля Active Directory
Import-Module ActiveDirectory
$ldapFilter = "(objectClass=user)"
$properties = "distinguishedName", "name"
$results = Get-ADObject -LDAPFilter $ldapFilter -Property $properties
foreach ($result in $results) {
# Process each search result object
$dn = $result.distinguishedName
$name = $result.name
Write-Host "DN: $dn, Name: $name"
}
Метод 3. Использование ускорителя ADSI
$domain = "LDAP://example.com"
$searchRoot = [ADSI]$domain
$searcher = [adsisearcher]$searchRoot
$searcher.Filter = "(objectClass=user)"
$searcher.PageSize = 1000
$result = $searcher.FindAll()
foreach ($entry in $result) {
# Process each search result entry
$dn = $entry.Properties["distinguishedName"][0]
$name = $entry.Properties["name"][0]
Write-Host "DN: $dn, Name: $name"
}
Эти методы демонстрируют, как выполнять запросы LDAP с помощью PowerShell. Вы можете настроить фильтр и свойства в соответствии с вашими конкретными критериями поиска. Не забудьте заменить «example.com» на соответствующий адрес или домен LDAP-сервера.