Я создаю скрипт для автоматизации развертывания AD для клиентов. У нас есть подготовленный список пользователей и групп в файлах CSV. Группы организованы в файл со следующим форматом. Имейте в виду, что я использую один и тот же CSV-файл для создания групп AD (что происходит на предыдущем шаге).Функция Powershell для добавления пользователей в группу AD из CSV
Name,Description,Members
GroupName,GroupDescription,"user1,user2,user3"
код, я использую, чтобы добавить пользователей к группам ниже:
$groups = Import-CSV -Path $groupCSVPath
$groups | % { Add-ADGroupMember -Identity $_.Name -Members $_.Members }
Это приводит к ошибке: Get-ADUser: Не удается найти объект с идентичностью: «user1 , user2, user3 '.
Если я попытаюсь следующее, это работает:
Add-ADGroupMember -Identity "GroupName" -Members user1,user2,user3
ошибка появляется ссылаться на команду Get-ADUser, который не принимает массивы в качестве входов. Однако команда Add-ADGroupMember делает это. Почему я получаю ошибку Get-ADUser при использовании команды Add-ADGroupMember и как я могу заставить ее принимать массив значений для имени пользователя AD?
Похоже, ваш файл CSV действительно список списков. Каждая запись в файле CSV содержит одно имя GroupName, один GroupDescription и список пользователей. Правильно? Существует способ «нормализовать» эти данные, чтобы каждая запись содержала GroupName, GroupDescription и ровно один Пользователь. Больше записей, меньше данных в каждой записи. Тем не менее, я не отправляю это как ответ, потому что он имеет серьезный недостаток. –