# Практическая работа № 2. Active Directory. ## 2.1 Установка ролей и компонент. Для функционирования Active Directory необходимо установить службы Active Directory, а также ключевой компонент поддержки работоспособности домена Windows это службу DNS. Данные компоненты будут установлены на оба сервера и dc1 и dc2. Для автоматического назначения IP адресов в нашей сети будет установлена служба DHCP. Для обеспечения отказоустойчивости ее развернем на обоих серверах dc1 и dc2. Все настройки будем выполнять средствами Powershell. ## 2.2 Настройка dc1 Посмотрим установленные на данный момент роли. ```powershell= Get-WindowsFeature ``` ![](https://i.imgur.com/pGOOq3W.png) Список довольно большой. Интересующие нас службы AD-Domain-Services, DNS и DHCP не установлены, но доступны к установке. Установим данные службы, все их подкомпоненты и средства управления. ```powershell= Install-WindowsFeature AD-Domain-Services, DNS, DHCP -IncludeAllSubFeature -IncludeManagementTools ``` Запускаем установку ![](https://i.imgur.com/54NWBN7.png) Результат установки ![](https://i.imgur.com/ETAYcwB.png) Проверяем установку ![](https://i.imgur.com/8bC0UTH.png) Службы установлены, перезагрузка не требуется ![](https://i.imgur.com/grQrhhy.png) ## 2.3. Повышение роли dc1 до контроллера домена. Повышать dc1 до контроллера домен будет также средствам Powershell. Для создания леса будем использовать комадлет Install-ADDSForest, для него необходимо установить некоторые параметры: - DomainName "pt.local" - имя домена - DomainNetbiosName "PT" - NetBIOS имя домена - CreateDnsDelegation:$false - отключим делегирование DNS - DomainMode WinThreshold - режим домена максимально возможный (Win2016) - ForestMode WinThreshold - режим леса максимально возможный (Win2016) - SafeModeAdministratorPassword $password - установим пароль восстановления - NoRebootOnCompletion:$true - перезагрузимся вручную - Force:$true - выполнить без дополнительных вопросов Остальные настройки оставим по умолчанию. Получим пароль восстановления ```powershell= $password = Read-Host -AsSecureString ``` ![](https://i.imgur.com/p3bis5h.png) Создадим лес следующим командлетом: ```powershell= Install-ADDSForest -DomainName "pt.local" -DomainNetbiosName "PT" -CreateDnsDelegation:$false -DomainMode WinThreshold -ForestMode WinThreshold -SafeModeAdministratorPassword $password -NoRebootOnCompletion:$true -Force:$true ``` Процесс создания леса ![](https://i.imgur.com/lj34uVh.png) Создание леса завершено необходима перезагрузка ![](https://i.imgur.com/RRtmchJ.png) Перезагружаем сервер ```powershell= Restart-Computer -Force -Verbose ``` ![](https://i.imgur.com/JeZyTkV.png) Проверим результат создания леса комадлетами ```powershell= # получим информацию о лесе Get-ADForest # получим информацию о домене Get-ADomain # получим информацию о контроллере домена Get-ADDomainController ``` ![](https://i.imgur.com/rdrcamB.png) ![](https://i.imgur.com/cubLpgI.png) ## 2.4. Авторизация dc1 как сервера DHCP Необходимо авторизовать DHCP сервер в Active Directory Просмотрим текущие авторизованные серверы ```powershell= Get-DhcpServerInDC ``` Авторизованных серверов нет ![](https://i.imgur.com/p4PqLde.png) Авторизуем сервер DHCP ```powershell= Add-DhcpServerInDC -DnsName "dc1.pt.local" -IPAddress 192.168.10.200 ``` Проверим результат ![](https://i.imgur.com/NlYg9VS.png) Сервер dc1 настроен ## 2.5. Настрока dc2. Установка ролей аналогична dc1. Посмотрим установленные на данный момент роли. ```powershell= Get-WindowsFeature ``` Службы AD-Domain-Services, DNS и DHCP не установлены, но доступны к установке. ![](https://i.imgur.com/WjgRscJ.png) Установим данные службы, все их подкомпоненты и средства управления. ```powershell= Install-WindowsFeature AD-Domain-Services, DNS, DHCP -IncludeAllSubFeature -IncludeManagementTools ``` Запускаем установку ![](https://i.imgur.com/zOV2rDB.png) Проверим установку ![](https://i.imgur.com/kIPIXfU.png) ![](https://i.imgur.com/kHo49RR.png) Службы установлены ## 2.6. Повышение рядового сервера dc2 до уровня контроллера домена. Повышаем dc2 до уровня контроллера домена, также указываем что он будет выполнять функции DNS сервера, по умолчанию он также ялвяется сервером глобального каталога. После повышения отказываемся от перезагрузки, перезагрузим вручную. При повышении будет запрошен пароль администратора домена pt.local. ```powershell= $password = Read-Host -AsSecureString Install-ADDSDomainController -InstallDns -DomainName "pt.local" -Credential (Get-Credential "PT\Administrator") -SafeModeAdministratorPassword $password -NoRebootONCompletion:$true -Force ``` Запускаем повышение и вводим пароль администратора. ![](https://i.imgur.com/sf4JDo9.png) Повышение завершено ![](https://i.imgur.com/KwGC4g7.png) Перезагружаем ```powershell= Restart-Computer -Force -Verbose ``` Проверим результат повышения ```powershell= # получим информацию о всех контроллерах домена Get-ADDomainController -Filter * -Server (Get-ADDomain).DNSRoot | Select-Object Hostname, OperatingSystem ``` ![](https://i.imgur.com/NWFtpV3.png) Просмотрим FSMO роли уровня леса ```powershell= Get-ADForest | Select-Object DomainNamingMaster, SchemaMaster ``` Видим что держатель обоих ролей контроллер dc1 ![](https://i.imgur.com/9ihJhc5.png) Просмотрим FSMO роли уровня домена ```powershell= Get-ADDomain | Select-Object InfrastructureMaster, RIDMaster, PDCEmulator ``` Видим что держатель всех ролей контроллер dc1 ![](https://i.imgur.com/uYrTeUA.png) Контроллер dc2 является BDC. На этом настройка Active Directory в данной работу закончена. ## 2.7. Авторизация сервера dc2 как DHCP сервера. Необходимо авторизовать DHCP сервер в Active Directory Просмотрим текущие авторизованные серверы ```powershell= Get-DhcpServerInDC ``` ![](https://i.imgur.com/urs4qL3.png) Авторизуем сервер DHCP ```powershell= Add-DhcpServerInDC -DnsName "dc2.pt.local" -IPAddress 192.168.10.201 ``` Проверим результат ![](https://i.imgur.com/tbLVr2G.png) Сервер dc2 настроен ## 2.8. Ввод машины pc1 в домен. Для ввода машины pc1 будем использовать следующий командлет ```powershell= Add-Computer -DomainName pt.local -DomainCredential PT\Administrator -Restart -Force ``` Запускаем присоединение к домену и вводим пароль администратора, которого указали в строке запуска. ![](https://i.imgur.com/SkxZ9WZ.png) Зайдем на машину под администратором домена ![](https://i.imgur.com/jdgTGyJ.png) Порверим доступ с машины pc1 до ресурсов домена, например до SYSVOL ```powershell= Get-ChildItem -Path "\\pt.local\SYSVOL" ``` Доступ есть. ![](https://i.imgur.com/L4aAOnu.png) ## 2.9. Выполнение скриптов и наполнение домена. Далее необходимо наполнить домен следующим образом ```powershell= New-ADOrganizationalUnit -Name Accounts New-ADOrganizationalUnit -Name VIP -path 'OU=Accounts,dc=pt,DC=local' New-ADOrganizationalUnit -Name Sysadmins -path 'OU=Accounts,dc=pt,DC=local' New-ADOrganizationalUnit -Name Progr -path 'OU=Accounts,dc=pt,DC=local' New-ADOrganizationalUnit -Name Buhg -path 'OU=Accounts,dc=pt,DC=local' New-ADOrganizationalUnit -Name HR -path 'OU=Accounts,dc=pt,DC=local' New-ADUser -Name "Alex" -GivenName "Alex" -UserPrincipalName "Alex@pt.local" -path 'OU=VIP,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString A-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Gleb" -GivenName "Gleb" -UserPrincipalName "Gleb@pt.local" -path 'OU=Progr,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString G-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Petr" -GivenName "Petr" -UserPrincipalName "Petr@pt.local" -path 'OU=Sysadmins,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString P-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Anton" -GivenName "Anton" -UserPrincipalName "Anton@pt.local" -path 'OU=Buhg,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString A-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Igor" -GivenName "Igor" -UserPrincipalName "Igor@pt.local" -path 'OU=Sysadmins,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString I-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Vasya" -GivenName "Vasya" -UserPrincipalName "Vasya@pt.local" -path 'OU=Progr,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString V-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Pavel" -GivenName "Pavel" -UserPrincipalName "Pavel@pt.local" -path 'OU=Progr,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString P-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Boris" -GivenName "Boris" -UserPrincipalName "Boris@pt.local" -path 'OU=Progr,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString B-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Lida" -GivenName "Lida" -UserPrincipalName "Lida@pt.local" -path 'OU=Buhg,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString L-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Sveta" -GivenName "Sveta" -UserPrincipalName "Sveta@pt.local" -path 'OU=VIP,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString S-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Nata" -GivenName "Nata" -UserPrincipalName "Nata@pt.local" -path 'OU=HR,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString N-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Yana" -GivenName "Yana" -UserPrincipalName "Yana@pt.local" -path 'OU=Buhg,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString Y-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Maria" -GivenName "Maria" -UserPrincipalName "Maria@pt.local" -path 'OU=HR,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString M-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Ada" -GivenName "Ada" -UserPrincipalName "Ada@pt.local" -path 'OU=Progr,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString A-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Roza" -GivenName "Roza" -UserPrincipalName "Roza@pt.local" -path 'OU=Buhg,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString R-Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "Olga" -GivenName "Olga" -UserPrincipalName "Olga@pt.local" -path 'OU=HR,OU=Accounts,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString O-Qq123456 -AsPlainText -force) -Enabled $true New-ADGroup "VIP" -path 'OU=VIP,OU=Accounts,dc=pt,DC=local' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose New-ADGroup "VIP-sec" -path 'OU=VIP,OU=Accounts,dc=pt,DC=local' -GroupCategory Security -GroupScope Global -PassThru –Verbose Add-ADGroupMember -Identity VIP -Members Alex, Sveta, Petr, Ada, Maria, Anton Add-ADGroupMember -Identity VIP-sec -Members Alex, Sveta New-ADGroup "Sysadmins" -path 'OU=Sysadmins,OU=Accounts,dc=pt,DC=local' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose New-ADGroup "Sysadmins-sec" -path 'OU=Sysadmins,OU=Accounts,dc=pt,DC=local' -GroupCategory Security -GroupScope Global -PassThru –Verbose Add-ADGroupMember -Identity Sysadmins -Members Petr, Igor Add-ADGroupMember -Identity Sysadmins-sec -Members Petr, Igor New-ADGroup "HR" -path 'OU=HR,OU=Accounts,dc=pt,DC=local' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose New-ADGroup "HR-sec" -path 'OU=HR,OU=Accounts,dc=pt,DC=local' -GroupCategory Security -GroupScope Global -PassThru –Verbose Add-ADGroupMember -Identity HR -Members Nata, Maria, Olga Add-ADGroupMember -Identity HR-sec -Members Nata, Maria, Olga New-ADGroup "Buhg" -path 'OU=Buhg,OU=Accounts,dc=pt,DC=local' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose New-ADGroup "Buhg-sec" -path 'OU=Buhg,OU=Accounts,dc=pt,DC=local' -GroupCategory Security -GroupScope Global -PassThru –Verbose Add-ADGroupMember -Identity Buhg -Members Roza, Yana, Lida, Anton Add-ADGroupMember -Identity Buhg-sec -Members Roza, Yana, Lida, Anton New-ADGroup "Progr" -path 'OU=Progr,OU=Accounts,dc=pt,DC=local' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose New-ADGroup "Progr-sec" -path 'OU=Progr,OU=Accounts,dc=pt,DC=local' -GroupCategory Security -GroupScope Global -PassThru –Verbose Add-ADGroupMember -Identity Progr -Members Gleb, Vasya, Pavel, Boris, Ada Add-ADGroupMember -Identity Progr-sec -Members Gleb, Vasya, Pavel, Boris, Ada New-ADOrganizationalUnit -Name ADM New-ADUser -Name "ADMPetr" -GivenName "ADMPetr" -UserPrincipalName "ADMPetr@pt.local" -path 'OU=ADM,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString Qq123456 -AsPlainText -force) -Enabled $true New-ADUser -Name "ADMIgor" -GivenName "ADMIgor" -UserPrincipalName "ADMIgor@pt.local" -path 'OU=ADM,dc=pt,DC=local' -AccountPassword (ConvertTo-SecureString Qq123456 -AsPlainText -force) -Enabled $true Add-ADGroupMember -Identity 'Domain Admins' -Members ADMPetr, ADMIgor ``` Данные командлеты объеденены в скрипт PTnewadusergroups.ps1, который используя Powershell ISE выполним на dc1. Результат выполнения. ![](https://i.imgur.com/TMf0eMw.png) Проверим наполнение Active Directory ![](https://i.imgur.com/eWlrAoP.png) Учетные записи созданы. На этом данная работа закончена.