Windows Server 2019

Створіть структуру OU в Active Directory за допомогою PowerShell

Створіть структуру OU в Active Directory за допомогою PowerShell

Досить часто адміністратор Active Directory при створенні нових організаційних одиниць (ОУ - організаційні одиниці) повинен негайно створити певну структуру вкладених контейнерів у новому ОУ. Наприклад, під час відкриття нової гілки вам потрібно створити контейнери в новому OU для користувачів, груп, серверів та облікових записів послуг. Щоб не створювати ОУ, а не розподіляти права на них вручну з консолі ADUC (DSA.MSC), ви можете використовувати сценарій PowerShell з цієї статті. Сценарій не тільки створює нові контейнери, але й створює адміністративні групи та надає їм права на новий ОУ.

Для створення нового НУ в Active Directory використовується командир Новий-Adorganiationaluniт З модуля RSAT-Dowershell. Щоб створити OU у зазначеному контейнері, ви можете використовувати таку команду:

Імпорт-модуль ActiveDirectory

Новий -DorganizationalUnit -Name "користувачі" -path "ou = kzn, u = ru, dc = ресурс, dc = loc" -description "контейнер для користувачів Kazan" -passthru

Якщо ви не вказуєте параметр шляху, новий OU буде створений у корені AD.

За замовчуванням, створюючи контейнери реклами, для них увімкнено опцію для захисту від видалення (Protededfromaccidentaldelet). Ви можете відключити цю опцію або змінити будь-який інший атрибут одиниці організації в Active Directory за допомогою Set-DorganizationalUnit:

Get -dorganizationalUnit -identity “ou = користувачі, ou = kzn, ou = ru, dc = ресурс, dc = loc” | Set -dorganizationalUnit -protedFromaccidentalde $ false

Щоб видалити OU за допомогою всіх вкладених об'єктів, використовується наступна команда:

Видалити -dobject -identity "ou = користувачі, ou = kzn, ou = ru, dc = ресурс, dc = loc" -urecursive

Розглянемо невеликий сценарій PowerShell, який дозволяє автоматизувати створення типової структури НУ для нових одиниць в Active Directory.

Припустимо, у вашій компанії звично створювати окремий ОУ для кожної гілки з такою структурою вкладених контейнерів:

Name_goroda --- адміністрації --- комп'ютери --- контакти --- групи --- сервери --- облікові записи послуг --- користувачі 

Після створення структури ОУ вам потрібно створити групи адміністраторів в AD та делегувати права на OU для них:

Нижче наведена основна версія такого сценарію PowerShell з коментарями. Сценарій коду CreateUustructure.PS1 Доступно в нашому Github:

# Встановіть назву контейнера
$ City = "nsk"
$ Cityru = "Novosibirsk"
$ Domaindn = (Get-Ddomain).Розрізнень
$ OUS = @(
"Адміністратори",
"Комп'ютери",
"Контакти",
"Групи",
"Сервери",
"Рахунки обслуговування",
"Користувачі"
)
# Створіть ou
$ Newou = new -dorganizationalUnit -Name $ CITY -STRIPY "контейнер для користувачів $ Cityru" -PassThru
Foreach ($ ou in $ ous)
New -dorganizationalUnit -name $ ou -path $ newou

#Створіть адміністративні групи
$ adm_grp = new -dragroup ($ city+"_ admins") -path ("ou = адміністратори, OU ="+$ City+","+$ domaindn) -groupscope global -passthru -verbose
$ adm_wks = new -adgroup ($ city+"_ account_managers") -path ("OU = admins, OU ="+$ City+","+$ domaindn) -grupscope global -passthru -verbose
$ adm_account = new -dragroup ($ city+"_ wks_admins") -path ("OU = admins, OU ="+$ City+","+$ domaindn) -groupscope global -passthru -verbose
##### Приклад встановлення прав на скидання паролів для групи _account_managers для користувачів OU
$ Confadright = "Extendedright"
$ ConfdelegatedObjectTtype = "BF967ABA-0DE6-11D0-A285-00AA0039E2" # Тип об'єкта користувача GUID
$ Confextendeddright = "00299570-246D-11D0-A768-00AA006E0529"
$ Acl = get-acl ("ad: ou = користувачі, ou ="+$ city+","+$ domaindn)
$ adm_AccountsD = [Система.Безпека.Директор.Безпека.Сід
#Будіть запис контролю доступу до лінії (ACE)
$ Acedentity = [система.Безпека.Директор.IdentityReference] $ adm_accountsid
$ Aceadright = [система.Каталогічні послуги.ActiveDirectoryRights] $ confadright
$ acetype = [система.Безпека.Управління доступом.AccessControlType] "Дозволити"
$ Aceinheritancetype = [система.Каталогічні послуги.ActiveDirectorySecurityInheritance] "наявна"
$ ACE = New -Object System.Каталогічні послуги.ActiveDirectoryAccessRule ($ AceIdentity, $ aceadright, $ acetype, $ confextendedright, $ aceinheritancutype, $ confdelegatedObjectType)
# Використовуйте ACL
$ ACL.AddAccessRule ($ ACE)
Set -ocl -path ("ad: ou = користувачі, OU ="+$ City+","+$ domaindn) -aclobject $ acl
######

Заповніть змінні на початку сценарію та запустіть його (не забувайте про політику сценаріїв PowerShell). Сценарій повинен створити потрібну структуру ОУ, групуйте та делегувати права скидання паролів контейнером користувачів.

Для призначення прав використовується команда Set-ACL, яка також дозволяє призначити дозволи на NTFS для папки.

Ви можете доповнити сценарій, додавши типові операції, які ви виконуєте під час створення OU для нової гілки.

Наприклад, ви можете створити групову політику за допомогою PowerShell і негайно призначити їх на OU:

$ Wksgpo = new -gpo -Name ($ CITY + "_WKS_POLICY") Політика робочих станцій $ City Workstations
Get-gpo $ wksgpo | Новий -gplink -target ("OU = комп'ютери, OU ="+$ City+","+$ domaindn ") -Linkenabled так

Перегляньте основні інструменти адміністрації в Windows 10
Розділ "адміністрування" Windows дозволяє змінити параметри комп'ютера та операційну систему, налаштувати ОС для окремих вимог. Найчастіше їх використ...
Як використовувати фундамент для новачків мультиметра
Перевірка напруги Діагностика скель Розподілений опір Нотатки Величезна кількість поломки електроніки пов'язана з відсутністю контакту в місцях, де ...
ABC -UPDATE - Альтернативний менеджер повстання Windows
Незважаючи на всі вдосконалення Центру оновлення Windows, багатьом користувачам все ще недостатньо комфортно. Важко не погодитися з цим твердженням, а...