This is an old revision of the document!
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
С нормальной кодировкой, упорядоченные по операционным системам и датой обновления машинного аккаунта:
Get-ADComputer -filter * -Properties * | Select Name, OperatingSystem, passwordlastset | sort-object OperatingSystem | Export-Csv c:\reports\computers.csv -Encoding UTF8
Выгрузить имена всех пользователей домена в csv-файл в правильной кодировке
Get-ADUser -Filter * | Select-Object name | Export-Csv c:\computers.csv -Encoding UTF8
Выгрузить все учётные записи в AD, которые включены в данный момент. В CSV-файл с нормальной кодировкой
Get-ADUser -Filter "enabled -eq 'true'" | Select-Object Name, SamAccountName | Export-Csv -Encoding UTF8 C:\Users\e.kudryashov\Desktop\ad_users.csv
Выгрузить все учётные записи в AD, которые включены в данный момент, отсортировать их по дате создания
Командлет выгрузит имя и даты создания пользователей.
Get-ADUser -Filter {Enabled -eq $true} -property name, created | Select-Object -property name, created | Sort-Object -property created
Права для обновления схемы
Нужно быть членом группы Schema Admins
Добавить группу или пользователя в локальные администраторы, GPO
На данном примере - группа домена ARASAKA - Workstation_LocalAdmins добавляется в локальную группу администраторов компьютеров, на которые распространяется текущий GPO.
GPO для блокировки рабочих станций после периода неактивности
Computer Conifg> Policies> Windows Settings> Security Settings> Local Policies> Security Options > Interactive logon: Machine inactivity limit
Если настроить автоматическую блокировку машины через данную доменную политику, а потом убрать её (сделав соответствующий параметр - “не задан”), то в реестре, после обновления GPO - останется значение, сконфигурированное в политике. В этом случае может быть полезен ключ реестра, который нужно сброить в 0.
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\inactivitytimeoutsecs
Посмотреть результаты применения групповых политик
Отправить результаты в файл:
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, как показано на скриншоте.
Обновляем политику:
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
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) - входящий на КД
Приоритет применения политик
1. Локальные объекты.
2. Уровень сайта.
3. Уровень домена.
4. Уровень конкретного OU.
В данном примере вышестоящие политики перезаписывают нижестоящие, т.е. имеют больший приоритет. Порядок применния GPO к объекту - можно посмотреть на вкладке Group Policy Inheritance, как показано на скриншоте.
Операции с компьютерами в домене
Сбросить машинный аккаунт и переввести компьютер в домен
Чтобы просто сбросить аккаунт компьютера - достаточно выполнить:
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
, что прямо определяет подробность лога. Выставлять полный уровень логгирования лучше на какой-то период дебага, а потом отключать. Для работы параметра не требуется перезагрузка.
Также, чтобы логгирование заработало - нужно выставить два параметра в ветке:
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)
Сами логи можно просматривать в разделе Directory Service
, как показано на скриншоте.
Узнать принадлежность юзера к группе
Get-ADPrincipalGroupMembership user_name | select name
Исчезновение элементов групповой политики в консоли
Если из консоли групповых политик пропали определенные элементы - к примеру, пункт: “Administrative templates” - возможно, AD использует централизованную модель хранения (Central Store) и хранит шаблоны политик в реплицируемом общем ресурсе sysvol, в котором отсутствуют нужные файлы. В консоли управления GPO это отображается следующим образом:
В данном случае необходимо скопировать локальные файлы, где запускается консоль 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, как показано на скриншоте.
При необходимости, увеличиваем срок действия сертификатов, а также помечаем закрытый ключ в качестве эскпортируемого.
Механизм выбора сертификата, который используется сервером для LDAPs - не очевиден. Вероятно, сервер использует первый подходящий сертификат, который найдёт в хранилище. При этом, наивысший приоритет имеет хранилище службы Active Directory Domain Services. Таким образом, если мы хотим добавить сертификат, который переопределит сертификат, который существует в хранилище компьютера - нам нужно добавить новый в хранилище personal службы AD DS, как показано на скриншоте.
Но, если у нас единственный сертификат и он находится в хранилище компьютера - можно не заморачиваться с отдельной установкой сертификата в хранилище службы ADDS.
Создать контроллер домена только для чтения (RODC)
В данной заметке мы будем использовать staged deployment, в котором мы сначала создадим машинный аккаунт будущего RODC, а потом подключим сервер в качестве RODC.
На обычном контроллере домена нужно выполнить следующую команду:
Add-ADDSReadOnlyDomainControllerAccount -DomainControllerAccountName RODC1 -DomainName domain.local -DelegatedAdministratorAccountName "domain\admin" -SiteName Default-First-Site-Name
После выполнения в разделе domain controllers - появится машинный аккаунт нового RODC.
RODC не нужно вводить в домен перед тем, как выполнять команды прпомоушена нового контроллера домена. RODC автоматически будет введен в домен после их выполнения. Однако, нужно задать имя компьютера, соответствующее имени, которое мы создали в разделе “domain controllers” и обязательно перезагрузиться.
Теперь на будущем RODC нужно установить роль контроллера домена, используя команду
Add-WindowsFeature AD-Domain-Services
После установки роли для staged deployment (вариант развёртывания, в котором мы предварительно создали аккаунт RODC) нужно выполнить промоушен с использованием аккаунта, который мы создали
Install-ADDSDomainController -DomainName domain.local -Credential (Get-Credential) -LogPath "C:\Windows\NTDS" -SYSVOLPath "C:\Windows\SYSVOL" -ReplicationSourceDC "dc1.domain.local" –UseExistingAccount