Скрипт учебного домена
Один PowerShell-скрипт строит домен lab.local с нуля: роль AD DS, OU, группы и 20 пользователей. Только для лаборатории!
⚠️ Только для лаборатории — не запускайте в рабочей сети
Что делает скрипт
- 1
Подготовка сервера
Windows Server 2022/2025, статический IP, имя компьютера DC1. Без статического IP DNS «поедет».
- 2
Установка AD DS и повышение до DC
Скрипт ставит роль и поднимает новый лес lab.local. Пароль DSRM сохраните — без него нет восстановления.
- 3
Структура OU
Workstations, Servers, Users, Admins, Service Accounts — основа под GPO и модель Tiering.
- 4
Пользователи и группы
20 учебных пользователей + группы Helpdesk и IT. Один стартовый пароль с обязательной сменой при входе.
- 5
Проверка
dcdiag, repadmin /replsum и Get-ADDomain — три проверки, что домен жив.
lab-domain.ps1
# ============================================================
# AD Academy — учебный домен lab.local
# Запускать от администратора на свежем Windows Server.
# ТОЛЬКО для лаборатории — не для рабочей сети!
# ============================================================
# --- Шаг 1. Имя и статический IP (подправьте под свою сеть) ---
Rename-Computer -NewName "DC1" -Force
New-NetIPAddress -InterfaceAlias "Ethernet" `
-IPAddress 192.168.10.10 -PrefixLength 24 -DefaultGateway 192.168.10.1
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" `
-ServerAddresses 127.0.0.1
Restart-Computer # после перезагрузки продолжайте
# --- Шаг 2. Роль AD DS и новый лес lab.local ---
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
$dsrm = Read-Host "Пароль DSRM" -AsSecureString
Install-ADDSForest `
-DomainName "lab.local" `
-DomainNetbiosName "LAB" `
-SafeModeAdministratorPassword $dsrm `
-InstallDns -Force
# Сервер сам перезагрузится как контроллер домена
# --- Шаг 3. Структура OU ---
$root = "DC=lab,DC=local"
"Workstations","Servers","Users","Admins","Service Accounts" | ForEach-Object {
New-ADOrganizationalUnit -Name $_ -Path $root -ProtectedFromAccidentalDeletion $true
}
# --- Шаг 4. Группы и 20 учебных пользователей ---
New-ADGroup -Name "Helpdesk" -GroupScope Global -Path "OU=Admins,$root"
New-ADGroup -Name "IT" -GroupScope Global -Path "OU=Admins,$root"
$pass = ConvertTo-SecureString "P@ssw0rd!Lab" -AsPlainText -Force
1..20 | ForEach-Object {
$u = "student{0:d2}" -f $_
New-ADUser -Name $u -SamAccountName $u `
-Path "OU=Users,$root" `
-AccountPassword $pass -Enabled $true `
-ChangePasswordAtLogon $true
}
Add-ADGroupMember -Identity "Helpdesk" -Members student01,student02
# --- Шаг 5. Проверка ---
dcdiag /v
repadmin /replsum
Get-ADDomain lab.local
Get-ADUser -Filter * -SearchBase "OU=Users,DC=lab,DC=local" | Measure-Object