Поиск в active directory windows 10

Задача поиска объектов в Active Directory (пользователей, групп или компьютеров) по имени с помощью некого шаблона, регулярного выражению или маске не так

Задача поиска объектов в Active Directory (пользователей, групп или компьютеров) по имени с помощью некого шаблона, регулярного выражению или маске не так очевидна, как кажется на самом деле. Дело в том, что по-умолчанию графическая консоль ADUC (AD Users and Computers), не позволяет использовать подстановочные символы в начале или в середине поисковой фразы.

Например, вы хотите найти в Active Directory все группу, в имени которых содержится ключевое слово «
SQL
». Если открыть консоль поиска (Find User, Contacts, and Groups) в ADUC и выполнить обычный поиск по ключевому слову
SQL
, то результаты скорее всего вас не устроят. Консоль ADUC выведет только группы и пользователей у которых указанное ключевое слово содержится в начале имени. Остальные объекты со словом
sql
не будут найдены. Поиск по маске *sql* также не даст результатов (подстановочные символы просто не работают).

поиск объектов в AD по ключевым словам

Вы можете быстро открыть окно поиска в AD с помощью команды
%SystemRoot%SYSTEM32rundll32.exe dsquery,OpenQueryWindow
.

Содержание:

  • Поиск пользователей и групп в Active Directory из консоли ADUC
  • Поиск компьютеров в Active Directory
  • Поиск групп, пользователей и компьютеров в Active Directory с помощью PowerShell

Поиск пользователей и групп в Active Directory из консоли ADUC

Вы можете найти нужные объекты в графической консоли Active Directory Users and Computers (
dsa.msc
) с помощью простых LDAP запросов.

  1. Для этого, откройте меню Find и в выпадающем списке типов поиска выберите Custom Search;
  2. Переключитесь на вкладку Advanced;
  3. В поле LDAP query, введите:
    name=*sql*

Примечание. Данный LDAP запрос говорит, что вы хотите найти все объекты AD, содержащие в имени значение sql. Для этого нужно воспользоваться символом подстановки
*
с обеих сторон.

Если нужно искать только объекты AD типа группа, используйте такой запрос.

(&(objectcategory=group)(name=*sql*))

ldap запросы для поиска в Active Directory из консоли dsa.msc

Как вы видите, по данному шаблону было найдено множество объектов AD (группы, компьютеры, пользователи, сервисные gMSA аккаунты).

Вы можете использовать расширенные фильтры в консоли поиска AD. Для этого включите опцию Filter в меню View и используйте расширенные фильтры для детализации поиска.

фильтры поиск в Active Directory

С помощью пункта меню View -> Choose Columns вы можете добавить дополнительные атрибуты объектов AD, по которым можно фильтровать найденные объекты.

Если вы используете для поиска консоль Active Directory Administrative Center (
dsac.exe
), в ней также можно использовать шаблоны LDAP для поиска. Выберите Global Search и переключитесь в режим Convert to LDAP. Введите запрос в поле LDAP query.

LDAP запросы в консоли Active Directory Administrative Center

Поиск компьютеров в Active Directory

Для поиска компьютеров и серверов в Active Directory по точному вхождению нужно в поле Find выбрать Computers и указать имя компьютера для поиска.

поиск по ключам в именах компьютеров AD

Если нужно найти компьютеры в AD по маске, нужно использовать такой LDAP запрос в разделе Custom Search -> Advanced.

(&(objectcategory=computer)(name=*sql*))

Поиск групп, пользователей и компьютеров в Active Directory с помощью PowerShell

Также для поиска объектов в AD, можно воспользоваться модулем PowerShell для ActiveDirectory.

Для поиска в Active Directory определенного типа объекта можно использовать соответствующий командлет:

  • Get-ADGroup – поиск групп
  • Get-ADUser – поиск пользователей
  • Get-ADComputer – поиск компьютеров

Итак, сначала нужно импортировать модуль PowerShell:
Import-Module ActiveDirectory

Для поиска групп в AD по шаблону, можно воспользоваться такой командой PowerShell:

Get-ADGroup -Filter {name -like "*sql*"} -Properties Description,info | Select Name,samaccountname,Description,info | Sort Name

поиск группы в AD с помощью PowerShell

Аналогично можно выполнить поиск по имени компьютера или пользователя:

Get-ADUser -Filter {name -like "*sql*"}
Get-ADComputer -Filter {name -like "*sql*"}

Если вы хотите выполнить универсальный поиск по всем типам объектам AD, используйте командлет Get-ADObject:

Get-ADObject -Filter {name -like "*sql*"} –Properties * | select sAMAccountName, ObjectClass, userPrincipalName, DisplayName, Description | FT

Как вы видите, команда вывели все типа объектов в AD (ObjectClass: computer, user,group, msDS-GroupManagedServiceAccount).

Get-ADObject поиск любых объектов в Active Directory из консоли powershell

Можно использовать LDAP фильтр непосредственно в команде Get-ADObject, также добавим область поиска с помощью опции SearchBase:

Get-ADObject -LdapFilter "(&(objectCategory=person)(objectClass=user)(cn=*sql*))" -SearchBase "OU=SPB,DC=winitpro,DC=ru"

Если вам нужно найти все сервисные аккаунты AD — Group Managed Service Account (MSA и gMSA), используйте команду:

Get-ADServiceAccount -Filter {name -like "*sql*"}

Надеюсь, эти простые способы облегчат вам задачу поиска объектов в Active Directory.

The task of searching for objects in Active Directory (users, groups, or computers) by name using some pattern, regular expression, or wildcard is not as obvious as it really seems. The matter is that by default the standard ADUC (Active Directory  Users and Computers) snap-in doesn’t allow to use wildcards in the beginning or in the middle of a search phrase.

For example, you want to search in Active Directory for all groups that contain the keyword “SQL” in their name. If you open the AD search console (Find User, Contacts, and Groups) in ADUC and perform a basic search for the SQL keyword, you will most likely not be happy with the results. ADUC will display only groups and users with the specified keyword at the beginning of their name. The rest of the objects with the keyword sql will not be found. Searching on the *sql* pattern will also give no results (wildcards just don’t work).

search active directory from ADUC console

You can quickly open the Active Directory search form using the command:

%SystemRoot%SYSTEM32rundll32.exe dsquery,OpenQueryWindow

Contents:

  • How to Find Active Directory Users or Groups with ADUC?
  • Searching Computers in Active Directory
  • How to Find Active Directory Groups, Users, or Computers using PowerShell?

How to Find Active Directory Users or Groups with ADUC?

You can find the objects you need in the graphical ADUC console (dsa.msc) using simple LDAP queries.

  1. To do it, open the Find menu, and select Custom Search in the dropdown list;
  2. Go to the Advanced tab;
  3. Type name=*sql* in the Enter LDAP query field.

Note. This LDAP query defines that you want to find all AD objects that contain sql keyword in their name. To do this, use the wildcard character * on both sides.

If you only want to search for AD group objects, use the following LDAP query.

(&(objectcategory=group)(name=*sql*))

search Active Directory object using wildcard LDAP filter

As you can see, all types of AD objects (groups, computers, users, gMSA service accounts) were found using this LDAP query.

You can use advanced filters in the AD Search console. To do this, enable the Filter option in the View menu and use advanced filters to refine your search.

advanced filtering in active directory search results

If you are using the Active Directory Administrative Center (dsac.exe) console for search AD objects, you can also use LDAP queries for searches. Select Global Search and switch to Convert to LDAP mode. Enter your query in the LDAP query field.

global search in Active Directory Administrative Center

Searching Computers in Active Directory

To search for computers and servers in Active Directory by an exact match, select Computers in the Find field and specify the name of the computer to search for.

active directory computer searching

If you need to find computers in AD using a wildcard, you need to use such an LDAP query in the Custom Search -> Advanced section of ADUC.

(&(objectcategory=computer)(name=*sql*))

How to Find Active Directory Groups, Users, or Computers using PowerShell?

You can also use the ActiveDirectory PowerShell module to find objects in AD. You can use the appropriate cmdlet to search Active Directory for a specific type of object.

  • Get-ADGroup – group search
  • Get-ADUser – user search
  • Get-ADComputer – searching for computers

First, you need to import the PowerShell module first:

Import-Module ActiveDirectory

To search for groups in AD using a wildcard, you can use the following PowerShell command:

Get-ADGroup -Filter {name -like "*sql*"} -Properties Description,info | Select Name,samaccountname,Description,info | Sort Name

powershell search ad groups wildcard

Similarly, you can search by computer name or username:

Get-ADUser -Filter {name -like "*sql*"}
Get-ADComputer -Filter {name -like "*sql*"}

If you want to perform a global search across all types of AD objects, use the Get-ADObject cmdlet:

Get-ADObject -Filter {name -like "*sql*"} –Properties * | select sAMAccountName, ObjectClass, userPrincipalName, DisplayName, Description | FT

As you can see, the command returned all object classes in AD: computer, user, group, msDS-GroupManagedServiceAccount.

Get-ADObject search in active directory objects

You can use the LDAP filter directly in the Get-ADObject command (I also added a search scope using the SearchBase option):

Get-ADObject -LdapFilter "(&(objectCategory=person)(objectClass=user)(cn=*sql*))" -SearchBase "OU=DE,DC=woshub,DC=com"

If you need to find all AD Group Managed Service Accounts (MSA and gMSA), use the command:

Get-ADServiceAccount -Filter {name -like "*sql*"}

I hope these easy ways will make it easier for you to find objects in Active Directory.

Обновлено 18.05.2022

AD logoДобрый день! Уважаемые читатели и гости одного из крупнейших IT блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы с вами разобрали вопрос, почему у вас отсутствует в системе библиотека vcruntime140.dll и научились ее успешно устанавливать. В сегодняшней публикации я бы вас хотел научить производить поиск в Active Directory по компьютерам с определенной операционной системой. Я расскажу в каких ситуациях вам, это будет полезно.

Постановка задачи

Вы наверняка знаете, что с конца 2019 года компания Microsoft перестает в базовом варианте поддерживать операционные системы Windows Server 2008 R2 и Windows 7, останется только расширенная поддержка для корпоративных пользователей. Вам как системному администратору можете поступить задача, определить сколько у вас таких рабочих станций или серверов, доступны ли они по сети, когда последний раз обращались к контроллеру домена и были изменены их данные.

Второй вариант, когда вам необходимо найти компьютеры с определенными операционными системами, связан с лицензированием, чтобы понять сколько у вас используется.

Решение задачи

Так как у меня доменная инфраструктура и единой точкой получения информации является база Active Directory и это удобно. Получить данные мы можем тремя методами:

  1. Использование LDAP запроса к контроллеру домена
  2. Через оболочку PowerShell
  3. Через SCCM

хочу отметить, что первые два метода доступны всем, а последний, только тем организациям, где внедрен мега продукт System Center Configuration Manager

Получение компьютеров через LDAP запрос

И так получить я хочу компьютеры у которых в качестве операционной системы выступает Windows Server 2008 R2. Для этого откройте оснастку «Active Directory Пользователи и компьютеры». В оснастке ADUC найдите раздел «Сохраненные запросы» и через правый клик по контейнеру, выберите пункт «Создать — Запрос«.

Получение компьютеров через LDAP запрос

Задаете понятное имя LDAP запроса и нажимаем кнопку «Запрос«.

Создание запроса LDAP

Выбираете «Пользовательский поиск», в поле выбираете «Компьютер — Операционная система».

Поиск компьютеров по операционным системам

В значении пишите Windows Server 2008 и нажимаете кнопку добавить.

поиск компьютеров в Active Directory

Сохраняем настройки, нажимая кнопку «Ок».

Сохранение LDAP запроса

В результате мы получили вот такой LDAP зарос:

(&(objectCategory=computer)(objectClass=computer)(operatingSystem=Windows20Server20200820R2*))

Текст LDAP запроса

На выходе вы получите список компьютеров с нужной вам операционной системой, у меня получилось 86 серверов, большая часть из них имеет статус отключен, об этом говорит стрелка вниз на значке. Так же удобно будет добавить столбец последнего изменения.

Список компьютеров из Active Directory

Получить список компьютеров по ОС из PowerShell

Запускаем оболочку PowerShell, для того чтобы получить список всех компьютеров с нужной операционной системой введите вот такую команду:

Get-ADComputer -Filter { OperatingSystem -Like ‘*Windows Server 2008*’ } -Properties OperatingSystem | Select Name, OperatingSystem | Format-Table -AutoSize

На выходе получите список из имени и версии ОС

Поиск компьютеров AD через PowerShell

Согласитесь, что это не информативно. Хочется, чтобы были данные:

  • Имя
  • Версию операционной системы
  • Дату последнего обращения (LastLogonDate)
  • Дату изменения (Modified)
  • Статус (Включена/Отключена)
  • Сетевая доступность (Отвечает на ping или нет)

Эту задачу я выполню с помощью вот такого кода, который я писал еще пару лет назад:

$Comps = Get-ADComputer -Filter { OperatingSystem -Like ‘*Windows Server 2008*’ } -Properties OperatingSystem, LastLogonDate, Modified | Select Name, OperatingSystem, LastLogonDate, Modified, Enabled | Sort-Object Enabled # | Format-Table -AutoSize

$comps2 = @()

foreach ($comp in $Comps)
{
$comp_info = $null
$comp_info = New-Object psobject -Property @{«Name» = $comp.Name; «Ping» = $(Test-Connection -ComputerName $comp.Name -Quiet -Count 1 -Verbose -ErrorAction SilentlyContinue);`
«OperatingSystem» = $comp.OperatingSystem; «LastLogonDate» = $comp.LastLogonDate; «Modified» = $comp.Modified; «Enabled» = $comp.Enabled}
$comps2 += $comp_info
}

# Скрипт с сайта Pyatilistnik.org

$comps2 | select Name, OperatingSystem, LastLogonDate, Modified, Enabled, Ping | sort Ping | Format-Table -AutoSize

Поиск компьютеров в AD

Если нужно выгрузить в файл, то просто добавьте в конце | Out-File C:ScriptsWindows-Server.txt или для csv файла | Export-CSV All-Windows.csv -NoTypeInformation -Encoding UTF8

В итоге я получил вот такой замечательный текстовый файл, в котором я вижу, какой компьютер живой и отвечает по сети, а какой нет и когда он последний раз обращался к контроллеру домена.

Поиск компьютеров в SCCM

SCCM, это мощнейшее средство, которое позволяет вам получать любые данные. Переходим на вкладку «Мониторинг — Отчеты — Операционная система» и выберите там пункт «Компьютеры с Windows Server»

Поиск компьютеров в SCCM

Выбираем коллекцию и нажимаем построить отчет.

Как найти компьютеры по ОС через SCCM

На выходе вы получите отчет по вашим хостам. В принципе данную информацию можно получить и через запрос в SCCM, как это делать смотрите по ссылке.

Результат со списком компьютеров из Active Directory

На этом у меня все. С вами был Иван Семин. автор и создатель IT портала Pyatilistnik.org.

LDAP queries can be used to search for different objects according to certain criteria (computers, users, groups) in the Active Directory LDAP database. To perform an LDAP query against the AD LDAP catalog, you can use various utilities (for example, ldapsearch in Windows), PowerShell or VBS scripts, Saved Queries feature in the Active Directory Users and Computers MMC snap-in, etc.

In this article, we’ll take a look at some useful examples of LDAP queries to AD and how to execute them.

How to Execute the LDAP Query?

First, let’s look at some examples of executing LDAP (Lightweight Directory Access Protocol) queries. For example, you want to perform a simple LDAP query to search for Active Directory users which have the “User must change password at next logon” option enabled. LDAP filter code must be surrounded by parentheses(). The code for this LDAP query is as follows:

(objectCategory=person)(objectClass=user)(pwdLastSet=0)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)

Let’s try to execute this LDAP query using the AD snap-in.

  1. Open the ADUC console and go to the Saved Queries section;
  2. Create a new query: New > Query;
    ldap query
  3. Specify a name for the new saved query and click the Define Query button;
    active directory query
  4. Select the Custom Search type, go to the Advanced tab, and copy your LDAP query code into the Enter LDAP query field;
    ldap query active directory
  5. Click OK twice, select your new query in the ADUC Saved Queries tree, and press F5;
  6. A list of AD users that match this LDAP query should display on the right pane.
    ldap queries

You can also use LDAP filters when searching for objects in the ADSI Edit console.

  1. To add an LDAP filter, click on the selected naming context (NC) and select New > Query from the menu;
    ad query
  2. Set the query name;
  3. Select the search area (Root of Search). In the Query String field specify the code of your LDAP filter. Additionally, here you can select the depth of the search Subtree or One level. query active directory

You can also use the LDAP query filter in the following PowerShell cmdlets: Get-ADUser, Get-ADComputer, Get-ADGroup, and Get-ADObject (these cmdlets are part of the PowerShell Active Directory module). Each of these cmdlets has a LdapFilter parameter that is specifically designed to use LDAP filters when searching for objects in Active Directory.

For example, to execute the above LDAP search query using Get-ADUser, open the powershell.exe console, and run the command:

Get-ADUser -LDAPFilter '(objectCategory=person)(objectClass=user)(pwdLastSet=0)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)'

To search for computers, use the Get-ADComputer cmdlet:

Get-ADComputer –LDAPFilter ‘your ldap query’

For example, you want to search in Active Directory for all desktop computers with certain versions of Windows that do not contain the keywords WKS and TEST in their names. First, let’s create a complex LDAP filter with several OR conditions:

$compLDAPFilter= "(&(|(operatingSystem=*Windows 7*)"

$compLDAPFilter+= "(operatingSystem=*Windows 8*)"

$compLDAPFilter += "(operatingSystem=*Windows 8.1*)"

$compLDAPFilter += "(operatingSystem=*Windows 10*))"

$compLDAPFilter += "(!name=*WKS*)(!name=*TEST*))"

After you have created an LDAP filter, it can be executed via Get-ADComputer:

Get-ADComputer -LDAPFilter $compLDAPFilter -Property * | Select-Object Name, OperatingSystem, LastLogonDate

To search for Active Directory group in AD, use the Get-ADGroup cmdlet:

Get-ADGroup –LDAPFilter {LDAP_query}

If you don’t know the type of Active Directory object you are looking for, you can use the generic Get-ADObject cmdlet:

Get-ADObject -LdapFilter "(cn=*Brion*)"

In this example, we found that the given LDAP filter matches the user Jon Brion and the BrionTeam group.

If you need to find objects of a specific type, you can specify the object type using the objectClass parameter. For example:

Get-ADObject -LdapFilter "(&(objectClass=user)(cn=*Brion*))"

windows ldap query

Let’s look at another example that allows you to display a list of users with membership in a specific group in Active Directory. In this example, we get a list in the Domain Admins group, but you can replace the group name with the Group CN you want:

(Get-ADObject -LdapFilter “(&(objectclass=group)(CN=Domain Admins))”) |

ForEach-Object {$a=$_.Name;

Get-ADObject -LdapFilter “(&(objectclass=user)(MemberOf=$($_.DistinguishedName)))” |

Select-Object DistinguishedName, Name, @{l=’GroupName’;e={$a}}}

ldap query builder

Here is another example that allows you to get a list of computers in a group. If user accounts are added to the group, such an LDAP query will not include them in the search results:

(Get-ADObject -LdapFilter “(&(objectclass=group)(CN=caManagerComputers))”) |

ForEach-Object {$a=$_.Name;

Get-ADObject -LdapFilter “(&(objectclass=computer)(MemberOf=$($_.DistinguishedName)))” |

Select-Object DistinguishedName, Name, @{l=’GroupName’;e={$a}}}

Windows has several built-in tools such as dsget and dsquery, that allow you to run LDAP queries against Active Directory,

The dsquery utility returns the Distinguished Name of an object that matches the specified parameters, and for LDAP filters it has a filter parameter. For example, to find all users with job titles starting with Manager, run the command:

dsquery * OU=Employees,DC=theitbros,DC=com -filter "(&(objectCategory=person)(objectClass=user)(Title=Manager*))"

You can use ANR (Ambiguous Name Resolution) to search for objects in Active Directory. This AD feature allows you to use complex filters that include several attributes associated with names.

  • displayName
  • givenName (First Name)
  • sn (Last Name)
  • sAMAccountName
  • legacyExchangeDN
  • Relative Distinguished Name (RDN)
  • proxyAddresses
  • mail
  • mailNickname
  • msExchResourceSearchProperties
  • msDS-AdditionalSamAccountName
  • msDS-PhoneticCompanyName
  • msDS-PhoneticDepartment
  • msDS-PhoneticDisplayName
  • msDS-PhoneticFirstName
  • msDS-PhoneticLastName

For example, to find users that contain the keyword test in one of these attributes, it’s enough to run this simple LDAP query:

(anr=test)

ldap query examples

LDAP Filter Syntax

The text form of LDAP search filters is defined in RFC 4515. The syntax for an LDAP filter is:

<Filter>=(<Attribute><comparison operator><value>)

The following comparison operators can be used in a filter:

 Operator
= Equal
>= More or equal
<= Less or equal
~= Approximately equal

For example, the following filter returns all objects with cn (common name) attribute value Jon:

(cn=Jon)

Filters can be combined using boolean operators when there are multiple search conditions:

 Operator
& AND — all conditions must be met
| OR — any number of conditions can be met
! NOT — the condition must not be met

For example, let’s select AD objects with cn equal to Jon and sn (surname) equal to Brion:

(&(cn=Jon)(sn=Brion))

You can use several logical operators in one filter at once, the main thing is not to get confused in parentheses. Let’s compose a filter that will return objects with cn equal to Jon or sn equal to Brion, for which cn is not equal to Alex:

(&(|(cn=Jon)(sn=Brion)(!(cn=Alex)))

You can refine search objects using the objectCategory and objectClass attributes.

Valid parameters: person, user, contact, computer, groups, organizationalPerson.

Using the following filter, select all users named Jon:

(&(objectClass=user)(objectCategory=person)(cn=Jon))

If you don’t know the exact name of the object, you can use the * wildcard character in the LDAP filter. For example, the previous query to find users whose name starts with Jo would need to be changed to:

(&(objectClass=user)(objectCategory=person)(cn=Jo*))

Get-ADObject -LdapFilter "(&(objectClass=user)(objectCategory=person)(cn=Jo*))" -properties givenName|select givenName

ad ldap query

Let’s consider some useful examples of LDAP queries that are often used by AD admins.

Search for administrators in groups Domain Admins, Enterprise Admins:

(objectClass=user)(objectCategory=Person)(adminCount=1)

List all AD users except blocked ones:

(objectCategory=person)(objectClass=user)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)

Display the list of disabled user accounts:

(objectCategory=person)(objectClass=user)(useraccountcontrol:1.2.840.113556.1.4.803:=16)

Select users with the “Password never expires option” enabled:

(objectcategory=user)(userAccountControl:1.2.840.113556.1.4.803:=65536)

Users with empty email values:

(objectcategory=person)(!mail=*)

List users with the Sales specified in the Department field:

(&(objectCategory=person)(objectClass=user)(department=Sales))

You can check AD group membership with PowerShell command:

(&(objectclass=user)(samacccountname=*)(MemberOf=CN=UKManagers,OU=Groups,OU=UK,DC=theitbros,DC=com))

You can list the groups the user is a member of:

(&(objectCategory=group)(member=CN=Jon Brion,OU=Employees,DC=theitbros,DC=com))

List all disabled computer accounts in AD:

(&(objectClass=computer)(userAccountControl:1.2.840.113556.1.4.803:=2))

Display all Windows 10 computers:

(objectCategory=computer)(operatingSystem=Windows 10*)

You can only select computers with a specific build of Windows 10:

(&(&(objectCategory=computer)(operatingSystem=Windows 10*)(operatingSystemVersion=*19041*)))

Hint. You can map Windows 10 build to the version according the following table:

Windows 10 Version Build number
20H2 19042
2004 19041
1909 18363
1903 18362
1809 17763

All domain controllers:

(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=8192))

All member domain servers (except DCs):

(&(objectCategory=computer)(operatingSystem=*server*)(!userAccountControl:1.2.840.113556.1.4.803:=8192))

All MS SQL Server instances in AD:

(&(objectCategory=computer)(servicePrincipalName=MSSQLSvc*))

List of groups created for the specified period:

(objectCategory=group)(whenCreated>=20200101000000.0Z&<=20201201000000.0Z&)

List all empty AD groups:

(objectCategory=group)(!member=*)

List all distribution groups:

(&(objectCategory=group)(!groupType:1.2.840.113556.1.4.803:=2147483648))

Print all groups with the *CIO* key in the group name:

(objectCategory=group)(samaccountname=*CIO*)

Find all Exchange Servers in the domain:

(objectCategory=computer)(servicePrincipalName=exchangeMDB*)(operatingSystem=Windows Server*)

All color printers on a specific print server published in the AD:

(uncName=*lon-prnt*)(objectCategory=printQueue)(printColor=TRUE)
  • About
  • Latest Posts

I enjoy technology and developing websites. Since 2012 I’m running a few of my own websites, and share useful content on gadgets, PC administration and website promotion.


Задача поиска имени пользователя или группы в Active Directory с помощью подстановочного знака, регулярного выражения или шаблона не так очевидна, как кажется. Дело в том, что по умолчанию стандартная консоль ADUC (AD Users and Computers) не позволяет использовать подстановочные знаки в начале или в середине поисковой фразы.

Например, вам нужно найти группы AD, в именах которых есть слово «password». Обычный поиск по ключу «password» результатов не дал. Поиск с использованием «*password*» также не увенчался успехом (подстановочные знаки просто не работают).

Как найти группы или пользователей AD в консоли ADUC

Вы можете выполнять поисковые операции в графической консоли ADUC с помощью простых запросов LDAP.

  • Для этого откройте меню Find («Поиск») и выберите Custom Search («Пользовательский поиск») в раскрывающемся списке.
  • Перейдите на вкладку Advanced («Дополнительно»).
  • Введите name=*pass* в поле «Введите запрос LDAP».

Примечание. Это означает, что вы хотите найти всех пользователей и группы, имена которых содержат «pass». Для этого используйте подстановочный знак * с обеих сторон.

Как видите, обнаружено 3 объекта AD.

Если вам нужно найти только группы AD, используйте следующий запрос LDAP:

(&(objectcategory=group)(name=*pass*))

Как найти группы или пользователей Active Directory с помощью PowerShell

Также для поиска объектов AD вы можете использовать модуль PowerShell для Active Directory. В отличие от метода, описанного выше, использование PowerShell для поиска чего-либо в AD требует отдельного командлета для поиска по группам, пользователям или компьютерам (командлеты Get-ADGroup, Get-ADUser или Get-ADComputer соответственно).

Смотрите также: Подстановочные символы в PowerShell

Чтобы найти группу, вы можете использовать следующую команду:

Get-ADGroup -Filter {name -like "*password*"} -Properties Description,info | Select Name,samaccountname,Description,info | Sort Name

Я надеюсь, что эти подсказки упростят вам поиск объектов в Active Directory.

Связанные статьи:

  • Как настроить Windows Server 2022 с помощью PowerShell (50%)
  • Как установить Active Directory Domain Services с помощью PowerShell (50%)
  • Управление ролями и функциями Windows Server с помощью PowerShell (50%)
  • Как установить и использовать Модуль Active Directory для Windows PowerShell (50%)
  • Аналог Add-Computer в PowerShell 7 (50%)
  • Актуализация настроек групповой политики на компьютерах домена Windows (RANDOM — 50%)

Рекомендуется Вам:

Dsquery.exe это утилита командной строки для получения информации о различных объектах в домене ActiveDirectory. Утилита доступна по-умолчанию во всех версиях Windows Server. Для ее использования в десктопных ОС необходимо установить соответствующую версию RSAT.

Команда dsquery позволяет выполнять запросы к LDAP каталогу для поиска объектов, отвечающих указанному критерию. В качестве атрибута команды dsquery нужно указать тип объекта AD, по которым выполняется поиск. Например:

  • dsquery computer
  • dsquery contact
  • dsquery subnet
  • dsquery group
  • dsquery ou
  • dsquery site
  • dsquery server
  • dsquery user
  • dsquery quota
  • dsquery partition
  • dsquery *

Последняя команда используется для поиска каталоге AD любых объектов с помощью общего запроса LDAP.

Чтобы получить справку о конкретной команде, наберите:

dsquery <object_type> /?

dsquery user /?

dsquery командна

Рассмотрим полезные примеры использования команды dsquery для получения информации из AD.

Чтобы найти все контролеры домена в лесу AD, выполните команду:

dsquery Server -o rdn -Forest

Вывести список всех контроллеров домена в указанном домене:

dsquery Server -domain vmblog.ru

Чтобы вывести все контроллеры домена с ролью Global Catalog:

dsquery Server -domain vmblog.ru -isgc

Список всех контроллеров домена в лесу, которые держат роль Schema Master FSMO:

dsquery Server -Forest -hasfsmo schema

Вывести все подсети в сайте Moscow:

dsquery subnet –site Moscow

По умолчанию утилита dsquery позволяет вывести только 100 объектов из AD. Чтобы нужно, чтобы команда вернула более 100 результатов, используйте аргумент –limit. Параметр –limit 0 означает, что результаты в выводе не ограничены.

Выведем список всех пользователей домена:

dsquery * -filter "(&(objectcategory=person)(objectclass=user)(name=*))" -limit 0 -attr samaccountname

dsquery выбор всех пользователей

По-умолчанию команда dsquery выводит список объектов, соответствующих критериям на экран, но вы можете сохранить полученный список в файл, перенаправив результаты команды таким образом:

DsQuery User > ExportAllUsers.txt

Можно получить информацию о конкретном пользователе:

dsquery * -filter "(&(objectcategory=person)(objectclass=user)(samaccountname=aivanov))" -limit 0 -attr *

Чтобы получить SID пользователя, используйте команду:

dsquery * -filter "&(objectcategory=user)(samaccountname=asivanov)" -attr objectsid

dsquery получение sid

Следующая команда возвращает список групп в домене:

dsquery * -filter "(&(objectcategory=group)(objectclass=group)(name=*))" -limit 0 -attr Name

Выведем список компьютеров в домене, имена которых начинаются в BUH-PC:

dsquery computer -name BUH-PC*

Утилиту dsquery можно использовать конвейером с другими утилитами (dsmod, dsget, dsrm или dsmove), и тогда в качестве входных данных для них будет браться результат команды dsquery. Например, чтобы сохранить членов определенной группы AD в текстовый файл (по аналогии с командлетом Get-ADGroupMember) используйте такой конвейер:

dsquery group ‘DC=vmblog,DC=ru’ -name ‘domain admins’ | dsget group -members > ExportUsersinGroup.txt

Либо вы можете отключить учетные записи найденных пользователей:

dsquery user –name Seme* | dsmod user -disabled yes

Найти и удалить из AD все компьютеры, которые неактивны более 10 недель:

dsquery computer -inactive 10 | dsrm

Добавить всех пользователей из определенной OU в группу безопасности AD:

dsquery user ‘ou=SPB,dc=vmblog,dc=ru’ | dsmod group ’cn=SPBUsers,ou= SPB,dc=vmblog,dc=ru -addmbr

Чтобы получить список пользователей, которые не меняли свой пароль в домене более 60 дней, выполните:

dsquery user -stalepwd 60 -limit 0
На первый взгляд синтаксис утилиты dsquery довольно сложен. Но если вы попробуете самостоятельно выполнить несколько запросов, вы поймете, что большинство подкоманд dsquery используют один и тот же стандартный синтаксис и содержат лишь несколько расширений стандартного синтаксиса, специфичных для типа объекта, с которым они работают.

LDAP-фильтры для поиска объектов в Active Directory. Часть 3

Продолжаем тему LDAP-фильтров. В третьей, завершаюшей статье рассмотрим некоторые инструменты для работы с фильтрами, а также примеры наиболее часто используемых фильтров. Начнем как всегда с

PowerShell

У командлетов Get-ADUser, Get-ADComputer, Get-ADGroup и Get-ADObject имеется параметр LdapFilter, специально предназначенный для использования LDAP-фильтров при поиске объектов в Active Directory. Для примера найдем всех пользователей с именем Vasya с помощью такой команды:

Get-ADUser -LdapFilter "(cn=Vasya)"

команда get-aduser

Большинство командлетов для поиска являются узкоспециализированными, т.е. предназначены только для определенного типа объектов (пользователи, компьютеры и т.п.). Исключение составляет командлет Get-ADObject, который может искать любые объекты. Например:

Get-ADObject -LdapFilter "(cn=Vasya)"

команда get-adobject

При использовании Get-ADObject мы получили не только пользователей, а все объекты с указанным в фильтре именем. Если требуется найти только пользователей, то надо в фильтре добавлять дополнительные параметры. Например:

Get-ADObject -LdapFilter "(&(objectCategory=person)(objectClass=user)(cn=Vasya))"

команда get-adobject с дополнительными фильтрами

При помощи LDAP-фильтра нельзя указать область поиска. Для примера найдем всех пользователей, у которых в описании (Description) имеется слово Руководитель:

Get-ADObject -LdapFilter "(Title=Руководитель*)" -Properties * | ft -a DisplayName,Title

Эта команда произведет поиск по всему домену и выдаст всех найденных пользователей, вне зависимости от их местоположения.

поиск по всему домену

Для уточнения области поиска есть параметр SearchBase, с помощью которого можно указать для поиска конкретное подразделение (OU), например:

Get-ADObject -LdapFilter "(Title=Руководитель*)" -Properties * -SearchBase "OU=Employees,DC=Test,DC=local | ft -a DisplayName,Title

ограничение области поиска с помощью параметра Searchbase

Еще один полезный параметр Subtree, с помощью которого можно ограничить глубину поиска. Этот параметр может принимать 3 значения:

• Base (0) — поиск только по указанному в запросе объекту. В результате поиска возвращается либо один объект, либо ничего. Данная область, как правило,  используется для проверки наличия объекта.
• One level (1) — поиск только по дочерним объектам указанного объекта. Поиск по вложенным объектам не производится, также в результаты поиск не попадает сам базовый объект.
• Subtree (2) — поиск по всем дочерним объектам, включая вложенные. Сам базовый объект в поиск не попадает. Это значение используется по умолчанию.

Для примера возьмем предыдущую команду и ограничим поиск верхним уровнем (OneLevel):

Get-ADObject -LdapFilter "(Title=Руководитель*)" -Properties * -SearchBase "OU=Employees,DC=Test,DC=local -SearcScope OneLevel | ft -a DisplayName,Title,DistinguishedName

ограничение глубины поиска с помощью параметра Searchscope

А затем зададим поиск по всем вложенным объектам (Subtree):

Get-ADObject -LdapFilter "(Title=Руководитель*)" -Properties * -SearchBase "OU=Employees,DC=Test,DC=local -SearcScope SubTree | ft -a DisplayName,Title,DistinguishedName

Как видите, разница очевидна.

поиск по всему дереву без ограничений

CMD

Для работы с Active Directory из командной строки существует великое множество различных утилит. Мы рассмотрим две наиболее часто используемые для поиска — dsquery и dsget.

Утилита dsquery возвращает различающееся имя (Distinquished Name) объекта, подходящего под заданные параметры, а для LDAP-фильтров у нее имеется параметр filter. К примеру, предыдущий запрос с использованием dsquery будет выглядеть так:

dsquery * OU=Employees,DC=test,DC=local -filter "(&(objectCategory=person)(objectClass=user)(Title=Руководитель*))" -Scope OneLevel

поиск с помощью dsquery

Утилита dsget получает на входе различающееся имя объекта и выдает для него значение указанного атрибута или атрибутов. Зачастую обе эти утилиты используются совместно, например:

dsquery * OU=Employees,DC=test,DC=local -filter "(&(objectCategory=person)(objectClass=user)(Title=Руководитель*))" | dsget user -display -title -dn

совместное использование dsquery и dsget

ADSIEdit

Переходим к графическим утилитам. Оснастка ADSIEdit поддерживает использование LDAP-фильтров. Для добавления фильтра надо кликнуть по выбраному контексту именования (NC) и в контекстном меню выбрать пункт New — Query…

фильтры в ADSIEdit

В открывшемся окне указываем имя запроса, выбираем область поиска (Root of Search) и в поле Query String добавляем нужный фильтр. Для примера отберем всех отключенных пользователей. Дополнительно можно выбрать глубину поиска Subtree или One level.

создание фильтра в ADSIEdit

В результате получим что то вроде этого.

результат работы фильтра в ADSIEdit

Active Directory Users and Computers

В оснастке Active Directory Users and Computers (ADUC) имеется функция Saved Queries, которая представляет из себя сохраненные LDAP-фильтры. Для создания сохраненного запроса кликаем правой клавишей мыши и выбираем New — Query.

фильтры в ADUC

Даем запросу понятное имя и описание, в Query root выбираем область поиска и отмечаем пункт Include subconteiners (аналог Subtree) для поиска по всем вложенным объектам. Затем жмем кнопку Define Query.

создание фильтра в ADUC

Оснастка поддерживает несколько режимов и в принципе вовсе не обязательно писать текст фильтра вручную. Для наиболее часто встречающихся ситуаций достаточно выбрать нужный пункт иили поставить галочку. Например, для показа всех пользователей с бессрочным паролем можно просто отметить чекбокс Non expiring passwords

общие запросы

и нажать ОК.

готовый фильтр в ADUC

Но мы не ищем легких путей, поэтому зададим фильтр руками. Для этого выбираем режим Custom Search и на вкладке Advanced вводим текст фильтра.

кастомные фильтрв в ADUC

В результате в папке Saved Queries появляется список пользователей, у которых пароль не истекает. Таким же образом можно отслеживать множестао различных параметров пользователей, компьютеров и т.д.

результат работы фильтра в ADUC

А полученные результаты можно экспортировать в виде списка. Очень удобный и полезный функционал.

экспорт отфильтрованного списка

Примеры LDAP-фильтров

В заключение приведу примеры наиболее часто используемых LDAP-фильтров. Для удобства фильтры сгруппированы по типу объектов (пользователи, компьютеры, группы и прочие непонятные сущности).

Все пользователи:

(&(objectCategory=person)(objectClass=user))

или:

(sAMAccountType=805306368)

Фильтр с использованием sAMAccountType более эффективен для объекта пользователь.

Все отключенные (Disabled) пользователи:

(&(sAMAccountType=805306368)(useraccountcontrol:1.2.840.113556.1.4.803:=2))

Все пользователи кроме отключенных:

(&(sAMAccountType=805306368)(!useraccountcontrol:1.2.840.113556.1.4.803:=2))

Заблокированные (Locked) пользователи:

(&(sAMAccountType=805306368)(useraccountcontrol:1.2.840.113556.1.4.803:=16))

или:

(&(sAMAccountType=805306368)(badPwdCount>=4))

Здесь используется атрибут badPwdCount, в котором хранится количество неудачных попыток ввода пароля пользователем. Значение нужно указывать в соответствии с политиками безопасности вашего домена.

Пользователи, не менявшие пароль более 3 месяцев:

(&(sAMAccountType=805306368)(pwdLastSet<=132161330597286610))

Атрибут pwdlastSet содержит в себе дату и время последней смены пароля пользователем. Он имеет тип Integer8 и представляет собой число временных интервалов длительностью 100 наносекунд, прошедших с 12:00 01.01.1601 (UTC). Получить требуемое значение можно с помощью PowerShell, например:

(Get-Date).AddMonths(-3).ToFileTimeUtc()

Пользователи, у которых пароль не истекает (Password newer expires):

(&(sAMAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=65536))

Пользователи, обязанные сменить пароль при следующем входе в систему:

(&(sAMAccountType=805306368)(pwdLastSet=0))

Если значение атрибута pwdlastSet равно 0 и при этом в свойствах учетной записи не отмечен пункт Password newer expires, то пользователь должен сменить пароль при следующем входе.

Пользователи, у которых не требуется пароль:

(&(sAMAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=32))

Пользователи с ограниченным сроком действия учетной записи:

(&(sAMAccountType=805306368)(|(accountExpires>=1)(accountExpires<=9223372036854775806)))

Пользователи, у которых срок действия учетной записи не ограничен:

(&(sAMAccountType=805306368)(|(accountExpires=0)(accountExpires=9223372036854775807)))

Атрибут accountExpires содержит дату истечения срока действия учетной записи и тоже представляет из себя число 100нс интервалов, прошедших с 01.01.1601 (UTC). Значение 0 или 9223372036854775807 (максимально возможное 64-битное число) означает, что срок действия учетной записи никогда не истечет.

Пользователи, созданные за определенный период:

(&(sAMAccountType=805306368)(whenCreated>=20200101000000.0Z))

или:

(&(sAMAccountType=805306368)(whenCreated>=20200101000000.0Z<=20200201000000.0Z))

В первом случае мы указываем только начальный период, во втором ограничиваем и начальный и конечный. Формат даты используется следующий:

YYYY MM DD HH mm ss.s Z

2020 01 01 00 00 00.0 Z

Кстати, таким образом можно искать не только пользователей, но и любые другие объекты в AD (компьютеры, группы и т.п.).

Пользователи, не заходившие в систему более чем 3 месяца:

(&(sAMAccountType=805306368)(lastLogon<=132161330597286610))

или

(&(sAMAccountType=805306368)(lastLogonTimeStamp<=132161330597286610))

Атрибуты lastLogon и lastLogonTimeStamp имеют такой же кривой тип, как pwdLastSet, и вычисляются таким же образом. Но между ними есть кардинальные различия, о которых необходимо знать.

lastLogon изменяется при входе пользователя только на том контроллере домена, на котором происходила аутентификация, на другие контроллеры он не реплицируется. Поэтому для получения точной информации необходимо произвести поиск на всех контроллерах домена, а потом сравнить полученные данные.

lastLogonTimeStamp также изменяется при входе пользователя, при этом он реплицируется на все контроллеры домена. Но сама репликация происходит с большой задержкой, порядка 9-14 дней. Поэтому полученные с его помощью данные могут быть не очень актуальны.

Пользователи, никогда не заходившие в систему:

(&(sAMAccountType=805306368)(lastLogon=0))

или:

(&(sAMAccountType=805306368)(!lastLogonTimeStamp=*))

Пользователи с почтовыми ящиками:

(&(sAMAccountType=805306368)(|(proxyAddresses=*)(mail=*)))

Пользователи, скрытые из адресной книги:

(&(sAMAccountType=805306368)(msExchHideFromAddressLists=TRUE))

Все компьютеры:

(objectCategory=computer)

Все компьютеры с определенной ОС:

(&(objectCategory=computer)(operatingSystem=Windows 7*))

Вместо Windows 7 можно поставить любую требуемую ОС.

Все серверы (компьютеры с серверной ОС):

(&(objectCategory=computer)(operatingSystem=*server*))

Все контроллеры домена:

(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=8192))

или:

(&(objectCategory=computer)(primaryGroupID=516))

Контроллеры домена, доступные только для чтения:

(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=67))

Все серверы, не являющиеся контроллерами домена:

(&(objectCategory=computer)(operatingSystem=*server*)(!userAccountControl:1.2.840.113556.1.4.803:=8192))

SQL серверы:

(&(objectCategory=computer)(servicePrincipalName=MSSQLSvc*))

Exchange серверы:

(&(objectCategory=computer)(servicePrincipalName=exchangeMDB*))

или:

(&(objectCategory=computer)(objectCategory=msExchExchangeServer))

Все группы:

(objectCategory=group)

Все локальные (Domain local) группы:

(&(objectCategory=group)(groupType:1.2.840.113556.1.4.803:=4))

Все глобальные (Global) группы:

(&(objectCategory=group)(groupType:1.2.840.113556.1.4.803:=2))

Все универсальные (Universal) группы:

(&(objectCategory=group)(groupType:1.2.840.113556.1.4.803:=8))

Все группы безопасности (Security):

(&(objectCategory=group)(groupType:1.2.840.113556.1.4.803:=2147483648))

Все группы рассылки (Distribution):

(&(objectCategory=group)(!groupType:1.2.840.113556.1.4.803:=2147483648))

или:

(&(objectClass=group)(proxyAddresses=*))

Во втором случае ищутся все группы, имеющие почтовый адрес. Напомню, что группы безопасности также могут иметь почтовый адрес и использоваться для рассылки.

Все локальные группы безопасности:

(&(objectCategory=group)(groupType=-2147483644))

или:

(&(objectCategory=group)(groupType=2147483652))

Атрибуты userAccountControl и groupType принимают целочисленные 32-битные значения, т.е. лежат в диапазоне от -231 (-2147483648) до 231 (2147483647). Значение атрибутов является результатом операции побитового ИЛИ. Например, значение groupType для локальной группы безопасности определяется путем применения операции ИЛИ к маске локальной группы (4) и группы безопасности (2147483648). В результате получается число 2147483652. Поскольку данное значение превышает максимально возможное для 32-битного числа, то оно конвертируется в отрицательное путем вычитания из него 232 (4294967296). Получается 2147483652 — 4294967296 = -2 147 483 644.

Теоретически правильно использовать отрицательное значение, на практике работают оба.

Все глобальные группы безопасности:

(&(objectCategory=group)(groupType=-2147483646))

Все универсальные группы безопасности:

(&(objectCategory=group)(groupType=-2147483640))

Все встроенные группы (BuiltIn):

(&(objectCategory=group)(groupType:1.2.840.113556.1.4.803:=1))

или:

(&(objectCategory=group)(groupType=-2147483643))

Все глобальные группы рассылки:

(&(objectCategory=group)(groupType=2))

У группы безопасности восьмой бит должен быть установлен в 1, соответственно значение маски равно 2147483648. У группы рассылки этот бит установлен в о, соответственно и значение маски равно 0. Отсюда получаем значение 0 (Distribution) + 2 (Global) = 2 (Global Distribution Group).

Все локальные группы рассылки:

(&(objectCategory=group)(groupType=4))

Все универсальные группы рассылки:

(&(objectCategory=group)(groupType=8))

Все члены группы (без учета вложенности):

(memberOf=CN=BackOffice,CN=Users,DC=test,DC=local)

Все члены группы с учетом вложенности:

(memberOf:1.2.840.113556.1.4.1941:=CN=BackOffice,CN=Users,DC=test,DC=local)

Все пользователи, не являющиеся членами группы (с учетом вложенности):

(&(objectCategory=person)(objectClass=user)(!memberOf:1.2.840.113556.1.4.1941:=CN=BackOffice,CN=Users,DC=test,DC=local))

Все группы, в которые входит пользователь:

(&(objectCategory=group)(member=CN=Vasya,OU=Employees,DC=test,DC=local))

Все группы, в которые входит пользователь (с учетом вложенности):

(&(objectCategory=group)(member:1.2.840.113556.1.4.1941:=CN=Vasya,OU=Employees,DC=test,DC=local))

Все пустые группы:

(&(objectCategory=group)(!member=*))

Все подразделения (OU):

(objectCategory=organizationalUnit)

Все контейнеры (CN):

(objectCategory=container)

Все встроенные контейнеры:

(objectCategory=builtinDomain)

Все объекты групповой политики:

(objectCategory=groupPolicyContainer)

Все отношения доверия:

(objectClass=trustedDomain)

Все связи между сайтами в контейнере конфигурации:

(objectClass=siteLink)

Для запросов к атрибутам конфигурации нужно использовать поиск по контейнеру Configuration (напр. cn=Configuration,dc=test,dc=local).

Объекты, защищенные AdminSDHolder:

(adminCount=1)

AdminSDHolder — это механизм защиты административных учетных записей. Если пользователь является членом защищенной группы (Domain Admins, Enterprise Admins и т.п.) то его учетной записи назначаются разрешения, установленные в объекте AdminSDHolder, а атрибуту adminCount пользователя присваивается значение 1.

Обратите внимание, что при удалении пользователя из защищенной группы его атрибут adminCount не возвращается к прежнему значению, соответственно запрос выдаст всех, кто когда либо входил в одну из этих групп.

Объекты, которые не могут быть удалены:

(systemFlags:1.2.840.113556.1.4.803:=2147483648)

Атрибут systemFlags определяет дополнительные свойства объекта и представляет из себя битовую маску.

Объекты, которые не могут быть перенесены:

(systemFlags:1.2.840.113556.1.4.803:=67108864)

Объекты, которые не могут быть переименованы:

(systemFlags:1.2.840.113556.1.4.803:=134217728)

Атрибуты, помеченные в схеме как конфиденциальные:

(searchFlags:1.2.840.113556.1.4.803:=128)

Атрибут searchFlags определяет правила поиска и индексации для атрибута и представляет из себя битовую маску.

Атрибуты, сохраняемые в объекте захоронении (tombstone) при удалении объекта:

(searchFlags:1.2.840.113556.1.4.803:=8)

Объекты nTDSDSA связанные с глобальным каталогом:

(&(objectCategory=nTDSDSA)(options:1.2.840.113556.1.4.803:=1))

С помощью этого запроса можно найти серверы глобального каталога. Поиск нужно проводить по контейнеру конфигурации. Подробнее об объектах nTDSDSA и их атрибутах.

Объекты nTDSDSA связанные с ролями FSMO:

(fSMORoleOwner=*)

Для ролей PDC Emulator, RID Master и Infrastructure Master нужно опрашивать домен. Владельца роли Schema Master нужно искать в контейнере Schema (напр. cn=Schema,cn=Configuration,dc=test,dc=local), а владельца Domain Naming Master — в контейнере Configuration (напр. cn=Configuration,dc=test,dc=local).

Можно искать каждую роль по отдельности.

PDC Emulator:

&(objectClass=domainDNS)(fSMORoleOwner=*))

RID Master:

(&(objectClass=rIDManager)(fSMORoleOwner=*))

Infrastructure Maste:

(&(objectClass=infrastructureUpdate)(fSMORoleOwner=*))

Schema Master:

(&(objectClass=dMD)(fSMORoleOwner=*))

Domain Naming Master:

(&(objectClass=crossRefContainer)(fSMORoleOwner=*))

Понравилась статья? Поделить с друзьями:
  • Поиск больших файлов на диске windows 10
  • Поиск больших файлов windows 10 программа
  • Поиск беспроводных дисплеев windows 10 не видит телевизор
  • Поиск антивирусной программы в интернете бесплатно для windows 7
  • Поиск windows 10 не ищет по содержимому