User Tools

Site Tools


active_directory

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
active_directory [2023/11/23 08:52] jpactive_directory [2025/04/02 10:05] (current) jp
Line 1: Line 1:
 ===== Active Directory ====== ===== Active Directory ======
- 
-=== Выгрузить имена всех компьютеров в csv-файл === 
- 
-   Get-ADComputer -Filter * | Select-Object name | Export-Csv c:\computers.csv 
-=== Разделить имена компьютеров запятой и выгрузить одной строкой === 
-   (Get-ADComputer -filter * | Select-Object name).name -join "," 
- 
-или выгрузить все компьютеры с их ОС: 
- 
-    Get-ADComputer -filter * -Properties * | Select Name, OperatingSystem 
-С нормальной кодировкой, упорядоченные по операционным системам и датой обновления машинного аккаунта: 
-<WRAP prewrap> 
-<code> 
-Get-ADComputer -filter * -Properties * | Select Name, OperatingSystem, passwordlastset | sort-object OperatingSystem | Export-Csv c:\reports\computers.csv -Encoding UTF8 
-</code> 
-</WRAP> 
-=== Выгрузить имена всех пользователей домена в csv-файл в правильной кодировке === 
- 
-   Get-ADUser -Filter * | Select-Object name | Export-Csv c:\computers.csv -Encoding UTF8 
- 
-=== Выгрузить все учётные записи в AD, которые включены в данный момент. В CSV-файл с нормальной кодировкой=== 
-<WRAP prewrap> 
-<code> 
-Get-ADUser -Filter "enabled -eq 'true'" | Select-Object Name, SamAccountName | Export-Csv -Encoding UTF8 C:\Users\e.kudryashov\Desktop\ad_users.csv 
-</code> 
-</WRAP> 
- 
-=== Выгрузить все учётные записи в AD, которые включены в данный момент, отсортировать их по дате создания === 
- 
-Командлет выгрузит имя и даты создания пользователей.  
- 
-<WRAP prewrap> 
-<code> 
-Get-ADUser -Filter {Enabled -eq $true} -property name, created | Select-Object -property name, created | Sort-Object -property created 
-</code> 
-</WRAP> 
- 
----- 
- 
-=== Права для обновления схемы === 
- 
-Нужно быть членом группы //Schema Admins// 
----- 
- 
-=== Добавить группу или пользователя в локальные администраторы, GPO == 
- 
-На данном примере - группа домена ARASAKA - //Workstation_LocalAdmins// добавляется в локальную группу администраторов компьютеров, на которые распространяется текущий GPO. 
  
 ;#; ;#;
-{{::gpo_add_user_admin.jpg?400|}}=+{{::vademi-18082021210632-expert_active_directory.jpg?600|}}
 ;#; ;#;
  
----- +[[ADMT]]\\ 
-=== GPO для блокировки рабочих станций после периода неактивности === +[[AD.Общее]]\\ 
- +[[AD.Сертификаты]]\\ 
-    Computer Conifg> Policies> Windows Settings> Security Settings> Local Policies> Security Options >  +[[ADDNS-сервер не запускается (2008 R2)]]\\ 
-    Interactive logon: Machine inactivity limit +[[Декомиссия DC offline]]\\ 
-Если настроить автоматическую блокировку машины через данную доменную политику, а потом убрать её (сделав соответствующий параметр - "не задан"), то в реестре, после обновления GPO - останется значение, сконфигурированное в политике. В этом случае может быть полезен ключ реестра, который нужно сброить в 0.  +[[Двухсторонние отношения доверия]]\\ 
- +[[Запросы информации об объектах AD]]\\ 
-   Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\inactivitytimeoutsecs +[[Настройка LAPS]]\\ 
- +[[Простой чекер учёток AD]]\
----- +[[Ошибки репликации КД]]\\ 
- +[[Синхронизация времени]]\\ 
-=== Посмотреть результаты применения групповых политик === +[[Операции с пользователями AD при помощи PS]]\\ 
- +[[Работа с GPO]]\\ 
-Отправить результаты в файл: +[[Работа с SID]]\
- +[[RODC]]\\
-   gpresult /H c:\gpres.html +
- +
----- +
-    +
-**Узнать кто имеет роль FSMO:** +
-   dsquery server -hasfsmo pdc     +
- +
----- +
- +
-==== Синхронизация времени ==== +
- +
-**Правильная настройка времени в домене Windows**. +
- +
-Тезисы: +
- +
-1. Контроллер домена с функциями PDC - должен синхронизировать время с внешнего источника.\\ +
-2. На всех виртуальных контроллерах домена должна быть отключена синхронизация времени с гипервизором хоста.\\ +
-3Остальные компьютеры в домене, включая другие КД должны получать время с контроллеров домена.\\ +
- +
-Настройка: +
- +
-:!: Для того, чтобы настройки применялись только на PDC - надо создать объект GPO с фильтром WMI, чтобы он применялся только к PDC, а не ко всем КД. +
- +
-В оснастке Group Policy Management надо создать фильтр с именем //Filter PDC Emulator//\\ +
-В пространстве //root\CIMv2// создаем запрос: //Select * from Win32_ComputerSystem where DomainRole = 5// +
- +
-Теперь этот фильтр можно будет применить к GPO, которая будет настраивать PDC. +
- +
-GPO для параметров, которые нужно задать: +
- +
-   Computer Configuration > Administrative Templates > System > Windows Time Service > Time Providers    +
-В нем конфигурируем все три параметра в //enabled//: разрешаем КД быть сервером NTP, настраиваем его самого в качестве клиента внешнего NTP и конфигурируем его параметры (сервер, с которым он будет синхронизироваться сам).  +
- +
-:!: Обязательно выставляем тип в NTP, как показано на скриншоте. +
- +
-;#; +
-{{::ntp_gpo.jpg?400|}} +
-;#; +
- +
-Обновляем политику: +
- +
-   gpupdate /force +
-Сообщаем службе времени новые параметры: +
- +
-   w32tm /config /update +
-Удостоверяеся, что все работает нормально и смотрим - откуда КД берет время: +
- +
-   w32tm /query /source +
-Клиенты, введенные в домен, по-умолчанию синхронизируют своё время с КД, поэтому - высок шанс, что ничего настраивать не нужно. Если требуется настройка - идём в тот же раздел GPO и настраиваем там параметр //configure ntp client//, в качестве сервера указывая наш контроллер домена. +
- +
-:!: При этом, тип обязательно должен быть **NT5DS**. +
- +
-**Другая полезная информация** \\ +
- +
-Вручную ресинхронизировать время: +
- +
-   w32tm /resync +
-Чтобы перерегистрировать службу времени, нужно выполнить: +
-   net stop w32time +
-   w32tm /unregister +
-   w32tm /register +
-   net start w32time +
-   +
-Отключить из гостевой системы синхронизацию с гипервизором (HYPER-V): +
- +
-   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider\enabled -> 0 +
-Время в гостевой ОС после отключения синхронизации в гипервизоре будет выглядеть так: +
- +
-   Local CMOS Clock или Free-running System Clock +
-Существует хорошая утилита для проверки коннекта и работы NTP: +
- +
-//Galleon NTP Checker//: https://www.ntp-time-server.com/ntp-software/ntp-check.html +
- +
----- +
- +
-**Контейнер "computers", куда попадают компьютеры по умолчанию** +
- +
-К данному контейнеру нельзя прилинковать объект GPO. Однако, вышестоящие политики (к примеру, уровня root) - будут применяться к нему. +
- +
- +
----- +
- +
-==== Парольные политики ==== +
- +
-**Требования сложности** +
- +
-Если поменять требования к паролям (сложность или длина), то существующие пользователи будут затронуты только при следующей смене пароля. +
- +
-** Срок пароля ** +
- +
-Если задать срок смены пароля, то те пароли, которые старше этого срока система попросит сменить после применения политики.  +
- +
----- +
- +
-=== Сетевые порты, необходимые для работы Active Directory === +
- +
-<code> +
-TCP 139 (NetBIOS Session Service) репликация между КД в обе стороны +
-UDP 138 (NetBIOS Datagram) - репликация между КД в обе стороны +
-UDP 137 (NetBIOS Name Resolution) - входящий на КД +
-TCP 445 (SMB) - входящий на КД +
-TCP 464 (Kerberos password change) - входящий на КД +
-TCP/UDP 88 (Kerberos) - входящий на КД +
-TCP/UDP 135 (RPC) - в обе стороны +
-TCP/UDP Dynamic (RPC) (49152-65535) - обязательно в обе стороны +
-TCP/UDP 389 (LDAP) - входящий на КД +
-TCP/UDP 636 (LDAPS) - входящий на КД +
-TCP 3268 (Global Catalog LDAP) - входящий на КД +
-TCP 3269 (Global Catalog LDAP SSL) - входящий на КД +
-TCP/UDP 53 (DNS Query) - входящий на КД +
-TCP/UDP 123 (NTP) - входящий на КД +
-</code> +
- +
- +
----- +
- +
- +
-=== Приоритет применения политик === +
- +
-1. Локальные объекты.\\ +
-2. Уровень сайта. \\ +
-3. Уровень домена. \\ +
-4. Уровень конкретного OU.\\ +
- +
-В данном примере вышестоящие политики перезаписывают нижестоящие, т.е. имеют больший приоритет. +
-Порядок применния GPO к объекту - можно посмотреть на вкладке //Group Policy Inheritance//, как показано на скриншоте. +
- +
-;#; +
-{{::gpo_order.jpg?&400|}} +
-;#; +
- +
- +
----- +
- +
-=== Операции с компьютерами в домене === +
- +
-**Сбросить машинный аккаунт и переввести компьютер в домен** +
- +
-Чтобы просто сбросить аккаунт компьютера - достаточно выполнить: +
- +
-   Reset-ComputerMachinePassword    +
-Если надо переввести компьютер в домен, то можно удалить аккаунт из AD и выполнить: +
-   Reset-ComputerMachinePassword -Credential domain\user    +
-:!: //Если аккаунта компьютера нет - его можно создать, а затем выполнить команду выше. Тогда компьютер будет ассоциирован с ним и введен в домен.// +
- +
-** Проверить доверие комьютера с доменом ** +
- +
-Данный командлет попробует установить секьюрный канал и напишет true или false в качестве результата. +
- +
-   Test-ComputerSecureChannel -verbose +
- +
-** Переименовать компьютер в домене ** +
-   Rename-Computer -ComputerName COMPUTER-NAME -NewName NEW-COMPUTER-NAME -DomainCredential office\admin    +
-** Вывести компьютер из домена **\\ +
-   Remove-Computer -UnJoinDomaincredential arasaka.local\jp -PassThru -Verbose -Restart\\ +
-** Ввести компьютер в домен ** +
-   Add-Computer -DomainName arasaka.local -Passthru -Verbose -Restart    +
- +
----- +
- +
-=== Управление логами LDAP === +
- +
-За логгирование запросов LDAP отвечает следующий параметр реестра: +
- +
-   Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\15 Field Engineering +
-Значение параметра может варьироваться от ''0'' до ''5'', что прямо определяет подробность лога. Выставлять полный уровень логгирования лучше на какой-то период дебага, а потом отключать. Для работы параметра __не требуется перезагрузка__. +
- +
-Также, чтобы логгирование заработало - нужно выставить два параметра в ветке: +
-<code> +
-Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters +
-DWORD 32 bit: Expensive Search Results Threshold (1) +
-DWORD 32 bit: Inefficient Search Results Threshold (1) +
-</code> +
- +
-Сами логи можно просматривать в разделе ''Directory Service'', как показано на скриншоте.  +
- +
-{{ ::ad_ldap_log_evenmgr.jpg?direct&400 |}} +
- +
----- +
-=== Узнать принадлежность юзера к группе === +
- +
-   Get-ADPrincipalGroupMembership user_name | select name +
- +
----- +
-=== Исчезновение элементов групповой политики в консоли === +
- +
-Если из консоли групповых политик пропали определенные элементы - к примеру, пункт: //"Administrative templates"// - возможно, AD использует централизованную модель хранения (Central Store) и хранит шаблоны политик в реплицируемом общем ресурсе //sysvol//, в котором отсутствуют нужные файлы. В консоли управления GPO это отображается следующим образом: +
- +
-{{::ad_gpo_central_store.jpg?400|}} +
- +
-В данном случае необходимо скопировать локальные файлы, где запускается консоль GPO в шару sysvol.  +
- +
-Копируем файлы шаблонов (admx) из локальной папки в sysvol: +
- +
-   C:\Windows\PolicyDefinitions +
-   C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions +
-Копируем языковые файлы (adml) из локальной папки в sysvol (если используем не только английский, то копируем из папок других языков так же. К примеру, из папки ru-RU): +
- +
-   C:\Windows\PolicyDefinitions\en-US +
-   C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\en-US +
-После того, как файлы появятся в central store - нужные настройки отобразятся в консоли GPO, никакие перезагрузки и перезапуски не требуются. +
----- +
-=== Разрешить RDP на контроллер домена обычному пользователю === +
- +
-В первую очередь нужно добавить пользователя в группу //Remote Desktop Users//Однако, в отличие от случаев с обычными серверами - этого недостаточно.  +
- +
-Если сделать только это - при попытке подключиться по RDP - получим ошибку:  +
- +
-:!: //To sign in remotely, you need the right to sign in through Remote Desktop Services. By default members of the Administrators group have this right. If the group you’re in does not have the right, or if the right has been removed from the Administrators group, you need to be granted the right manually.// +
- +
-Чтобы разрешить доменному пользователю подключения к RDP, нам требуется добавить ему это право через GPO: +
- +
-   Computer Configuration -> Windows settings -> Security Settings -> Local policies -> User Rights Assignment +
-   Allow log on through Remote Desktop Services +
-Добавляем сюда либо группу: //domain_name\Remote Desktop Users//, либо конкретного пользователя, которому мы добавляем доступ.  +
- +
----- +
- +
-=== Замена сертификата LDAPs === +
- +
-Правильный, современный шаблон для контроллеров домена, который следует взять за основу для выпуска актуального шаблона в //AD CS// - называется //Kerberos Authentication//. В нём нужно поменять //subject name format// на //DNS name//, как показано на скриншоте. +
- +
-;#; +
-{{::domain_controller_cert_templ.jpg?400|}} +
-;#; +
- +
- +
-При необходимости, увеличиваем срок действия сертификатов, а также помечаем закрытый ключ в качестве эскпортируемого. +
- +
-Механизм выбора сертификата, который используется сервером для LDAPs - не очевиден. Вероятно, сервер использует первый подходящий сертификат, который найдёт в хранилище. При этом, наивысший приоритет имеет хранилище **службы** //Active Directory Domain Services//. Таким образом, если мы хотим добавить сертификат, который переопределит сертификат, который существует в хранилище компьютера - нам нужно добавить новый в хранилище //personal// службы //AD DS//, как показано на скриншоте.  +
- +
-;#; +
-{{::ldaps_cert_adds.jpg?200|}} +
-;#; +
- +
-:!: //Но, если у нас единственный сертификат и он находится в хранилище компьютера - можно не заморачиваться с отдельной установкой сертификата в хранилище службы ADDS.// +
----- +
-=== Создать контроллер домена только для чтения (RODC) === +
- +
-В данной заметке мы будем использовать //staged deployment//, в котором мы сначала создадим машинный аккаунт будущего RODC, а потом подключим сервер в качестве RODC.  +
- +
-На обычном контроллере домена нужно выполнить следующую команду: +
-<WRAP prewrap> +
-<code> +
-Add-ADDSReadOnlyDomainControllerAccount -DomainControllerAccountName RODC1 -DomainName domain.local -DelegatedAdministratorAccountName "domain\admin" -SiteName Default-First-Site-Name +
-</code> +
-</WRAP> +
-После выполнения в разделе //domain controllers// - появится машинный аккаунт нового RODC+
- +
-:!: //RODC не нужно вводить в домен перед тем, как выполнять команды прпомоушена нового контроллера домена. RODC автоматически будет введен в домен после их выполнения. Однако, нужно задать имя компьютера, соответствующее имени, которое мы создали в разделе "domain controllers" и обязательно перезагрузиться.// +
- +
-Теперь на будущем RODC нужно установить роль контроллера домена, используя команду +
- +
-   Add-WindowsFeature AD-Domain-Services +
-После установки роли для staged deployment (вариант развёртывания, в котором мы предварительно создали аккаунт RODC) нужно выполнить промоушен с использованием аккаунта, который мы создали +
- +
-<WRAP prewrap> +
-<code> +
-Install-ADDSDomainController -DomainName domain.local -Credential (Get-Credential) -LogPath "C:\Windows\NTDS" -SYSVOLPath "C:\Windows\SYSVOL" -ReplicationSourceDC "dc1.domain.local" –UseExistingAccount +
-</code> +
-</WRAP>+
  
-{{tag>ActiveDirectory Microsoft NTP GPO LDAP PowerShell RDP}} 
active_directory.1700729564.txt.gz · Last modified: 2023/11/23 08:52 by jp