Здавия всем, дамы и господа, как и обещал, продолжаем про скрипт, сегодня будем брать данные для пользователей из csv таблицы

Создание из таблицы

    1. Import-Csv -Path C:\users.csv -Delimiter ";" -Encoding Default | foreach-object{
    2. New-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $false -Path "DC=skill39,DC=wsr" -Name $_.OU
    3. New-ADGroup -Path ("OU=" + $_.OU + ",DC=skill39,DC=wsr") -Name $_.Role -GroupScope Global -PassThru
    4. New-ADUser -AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -Force) -City $_.City -Country RU -Department $_.OU -CannotChangePassword $true -Name ($_.'First Name' + $_.'Last Name') -DisplayName ($_.'First Name' + " " + $_.'Last Name') -Enabled $true -GivenName $_.'First Name' -Fax $_.Phone -PassThru -Path ("OU=" + $_.OU + ",DC=skill39,DC=wsr") -PostalCode 'ZIP/Postal Code' -Surname $_.'Last Name' -Title $_.Role -StreetAddress $_.Street -Verbose
    5. Add-ADGroupmember -Identity $_.Role -Members ($_.'First Name' + $_.'Last Name')}

А теперь разбор.

    1. Import-Csv – это, как нетрудно догадаться, командлет отвечающий за обработку csv таблиц
-Path – Здесь вы указываете путь до вашего файла таблицы. Обязательно закрыть его опострофами, т.к. иначе он не сможет считать путь.
-Delimeter – Делиметром называют символ, по которому одно значение таблицы отделяется от другого. В случае нашей таблицы это “;”. Символ должен быть в кавычках, так как это текст.
-Encoding – Кодировка, в которой записана ваша таблица. Вообще, не обязательно использовать этот параметр, у меня рботало и без него, но если у вас используется нестандартная кодировка, то именно здесь можно её выбрать.
Далее идёт символ “|”, он отвечает за передачу вывода того, что идёт перед ним в качестве ввода для того, что идёт после него. Таким образом наша таблица отправляется в руки командлету foreach-object.
Foreach-object – цикл, позволяющий обрабатывать массивы данных, в нашем случае – таблица.
В остальном всё работает точно также, ведь неважно откуда вы берёте данные, команды для создания организационного юнита, группы, пользователя, добавления пользователя в группу остаются такими же. Стоит лишь объяснить, что значит параметр вида $_.Role. Символ нижнего подчёркивания это “затычка” для foreach-object, ведь когда мы говорим, откуда брать данные мы как бы говорим “Бери отсюда”, указывая подчёркивание. А после подчёркивания указываем название столбца таблицы, кстати по строкам скрипт перемещается автоматически с каждой итерацией цикла. То есть логика выглядит примерно так:
“Бери из заданной таблицы, а именно из этого столбца”

Если вдруг не читали предыдущую статью, крайне советую, ведь она даёт основное понимание.

В следующий раз расскажу о подключении локальных репозиториев в CentOS. Также, через пару дней.

Комментарии