דילוג לתוכן הראשי
AD Academy

סקריפט דומיין לימודי

PowerShell אחד שבונה דומיין lab.local מאפס: תפקיד AD DS, OU, קבוצות ו־20 משתמשים. רק למעבדה!

⚠️ רק למעבדה — אל תריץ ברשת אמיתית

מה הסקריפט עושה

  1. 1

    הכנת השרת

    Windows Server 2022/2025, IP קבוע, שם מחשב DC1. בלי IP קבוע ה־DNS ישתגע.

  2. 2

    התקנת AD DS וקידום ל־DC

    הסקריפט מתקין את התפקיד ומקדם ליער חדש lab.local. סיסמת DSRM — שמור אותה, בלעדיה אין שחזור.

  3. 3

    מבנה OU

    Workstations, Servers, Users, Admins, Service Accounts — בסיס ל־GPO ולמודל Tiering.

  4. 4

    משתמשים וקבוצות

    20 משתמשי דמה + קבוצות Helpdesk ו־IT. סיסמה ראשונית אחת עם חובת החלפה בכניסה.

  5. 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