Здравия всем, дамы и господа. Начать этот справочник хочу с чего-нибудь интересного, но из прямо-таки интересного я хорошо разобрался только в скрипте создания пользователей, о котором вам и поведаю

 

Создание по алгоритму

 

Используется достаточно редко ведь, вряд ли вам на производстве нужно будет создавать пользователей вида Manager1 Manager2 и т.д. Но для понимания того, как работает сам скрипт пригодится.

 

    1. New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $false -Path “DC=domain,DC=local” -Name “Managers” -PassThru

    2. New-ADGroup -Name “Managers” -Path “OU=Managers,DC=domain,DC=local” -GroupScope DomainLocal -PassThru

    3. For ($x=1; $x -le 10; $x++){

    4. New-ADUser -Name (“Manager”+$x) -Path “OU=Managers,DC=domain,DC=local” -DisplayName (“Manager”+  “ ” + $x) -AccountPassword (ConvertTo-SecureString P@ssw0rd -AsPlainText -Force) -CannotChangePassword $true -Enabled $true -Passthru

    5. Add-ADGroupMember -Identity “Managers” -Members (“Manager”+$x)

    6. }

 

А теперь наиподробнейший построчный разбор каждой буковки.

 

    1. Создание организационного юнита. Если вы хоть раз заходили в оснастку “Users and Computers”, вы прекрасно знаете, что это такое, а если нет – объясню. Если говорить совсем уж урощённо, это папка в домене, по таким как она можно сортировать элементы (пользователей, сервера, компьютеры). 

-ProtectedFromAccidentalDeletion – Первый аргумент отвечает за защиту от случайного удаления. (если вы создаёте пользователей надолго – можете не писать этот аргумент, т.к. по умолчанию эта защита включена, если же хотите выключить – поставьте значение $false либо 0, так как это одно и тоже, этот аргумент принимает значение типа boolean. 

-Path – Следующий аргумент означает путь. Вот это да. Поскольку домен состоит из двух уровней, например itsnews.tech, как в нашем случае (itsnews – домен второго уровня, tech – домен первого уровня) так и тут, пишется сначала домен второго уровня (DC=domain) потом, после запятой домен первого уровня (DC=local). Если вы видте где-то domain.local – значит это просто “затычка”, вместо которой нужно поставить свой домен.

-Name – Третий аргумент отвечает за имя, что логично. В качестве значения он принимает слово в двойных кавычках.

-PassThru – Четвертый аргумент включает отображение работы. Если в вашем скрипте не будет ни одного аргумента -PassThru, то при правильной работе скрипт ничего не будет выводить, он просто сделает свою работу, но если в нём будет ошибка, то о ней вы узнаете. Ему значение не нужно.

    2. Создание группы. Группа нужна для удобного разграничения прав.

-Name – Первый аргумент пропускаем, его уже обсудили.

-Path – Второй аргумент это тот же путь, что был в прошлой команде, но к нему добавился организационный юнит, который мы, собственно, прошлой командой и создавали. Как я и говорил OU(Organizational Unit, Организационный юнит) – это, скажем так, папка в домене, а группа создаётся в этой самой папке, То есть к “DC=domain,DC=local” добавляется ещё и “OU=Managers”, в итоге мы получаем “OU=Managers,DC=domain,DC=local”.

-GroupScope – Третий аргумент отвечает за то, кто может быть членом этой группы и где она видна. В нашем случае (DomanLocal) – это локальные доменные группы, которые видны только в их собственном домене. Также существуют ещё два типа. Global – эти группы видны во всём лесу, но может содержат только пользователей из своего домена. И наконец Universal – видны всем, могу содержаь всех, вобщем полностью оправдывают своё название.

Четвёртый аргументы мы уже видели. Пропускаем.

    3. Стандартный цикл for, ничего удивительного проходите мимо. (вместо 10 можно поставить то количество пользователей, которое вам необходимо создать)

    4. Основная часть сего скрипта, собственно, создание пользователей.

-Name – Первый аргумент – это имя, ничего необычного, но стоит остановиться на том, что мы к имени присваиваем. Это слово Manager, и к нему прибавляется цифра, которую мы для удобства берём из цикла, используем тот самый x.

-Path – Следующий аргумент - путь. Видели, знаем.

-DisplayName – Дальше следует – аргумент отвечающий за то имя, которое отображается на экране входа и чтобы оно хоть как-то отличалось мы добавляем между словом и цифрой пробел. Да, пробел добавляется просто пробелом в кавычках. Костыль? Возможно. Но работает ведь.

-AccountPassword – А теперь пароль. Можно, конечно, передать пароль в открытом виде, но вы правда хотите, чтобы пароли были видны через просмотр пользователя? Поэтому мы и используем ConvertTo-SecureString. Он, как можно догадаться по названию, конвертирует обычный текст в “безопасный”, но этот “безопасный” текст не может быть принят как значение переменной string, а именно её требует (-AccountPassword), поэтому вводим аргумент (-AsPlainText), то есть “КакОбычныйТекст” и ещё один аргумент (-Force). Он нужен для того, чтобы вывести итог команды за скобки.

-CannotChangePassword - Если вы хотите, чтобы пользователь мог менять пароль то для сего аргумента ставьте значение $false либо 0, если наоборот, то $true либо 1.

-Enabled - А теперь надо включить учётную запись, для этого в аргументе ставьте $true или 1.

Последний аргумент нам уже хорошо знаком.

    5. Добавление в группу. Если ваши пользователи будут вне групп вам придётся настраивать права отдельно для каждого пользователя, а это не самая приятная процедура.

-Identity – здесь введите название своей группы, в моём случае “Managers”

-Members – а здесь пользователя, которого добавляем.

    6. И последняя самая сложная строчка. Чтобы с ней разобраться понадобятся миллионы лет.

 

На этом, пожалуй, закончим. В следующий раз разберём создание пользователей по данным из csv таблицы. Когда следующий раз? Пока не знаю, но думаю, что через пару дней.

Комментарии