Связаться по Skype: vkarabedyants
Позвонить Написать
+7 (499) 404-28-83

Блог о системном администрировании серверов и сайтов

Установка, настройка программного обеспечения Linux, Windows операционных систем

Создание объектов AD с помощью PowerShell

Недавно мне потребовалось создать группу для каждой организационной единицы, OU, а затем «населить» ее пользователями. Я написал сценарий, полагая, что это будет интересный инструмент для тех, кто ищет ответ на вопрос, как управляться с PowerShell. Текст сценария приведен в листинге.

Что он делает? Прежде всего, определяет корневой домен, где мы хотим выполнить поиск. В данном случае я ищу корень домена savilltech.net, который выглядит как DC=savilltech, DC=net. Я сохраняю его в переменной. Не стоит явно указывать пути в середине сценария, лучше переместить их к началу, поскольку так будет легче изменить их в дальнейшем. Теперь мне нужно найти все организационные единицы OU непосредственно по этому пути. Я могу сделать это при помощи Get-ADOrganizationalUnit и указания для ключа -SearchScope значения One Level. Это означает, что будет выполнен просмотр на один уровень ниже, но по этим OU не будет поиска. Существуют и другие доступные возможности, если вы хотите поискать более тщательно, например переключатель Subtree, позволяющий увидеть все организационные единицы. Мы сохраняем результаты в другую переменную — $OUs.

Теперь я хочу взглянуть на каждую OU. При использовании оператора foreach список объектов в $OUs будет помещен в SOU, где я могу поработать с каждым объектом. Например, к атрибутам можно получить доступ через использование $OU.<attribute>. Вы можете заметить, что у меня иногда встречаются переменные в $ (), например $ (SOU.Name). В основном это потому, что, когда я получаю доступ к атрибуту переменной внутри строки, которую использую по умолчанию, при указании точки в ссылке на переменную она прерывается и вместо атрибута становится просто частью строки. Заключение ссылки и всего остального внутрь $ () позволит воспринимать все это как объект, то есть атрибут. Первое основное действие — это New-ADGroup.

Здесь следует отметить два момента:

1. У нас есть символ продолжения строки, обратная кавычка «`», поэтому единая команда может быть разбита на несколько строк.
2. Использование параметра -PassThru в конце команды, который указывает на продолжение обработки объекта конвейером. В данном случае это будет означать, что он присвоен переменной SNewGroup.

Затем будет найден список всех пользователей, после чего для каждого из них пользовательский объект передается по конвейеру (с помощью символа «|»), и пользователь добавляется к группе.
Вот и все. Очень простой сценарий, но он демонстрирует несколько примечательных свойств PowerShell.

Оставить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.