Как-то давно у меня встал вопрос как быстро добавить список пользователей в определённую созданную группу в ad, быстрый поиск в гугле особо мне ничего не дал. Решение пришлось искать почти рабочий день, благо время было. Результат состоял из двух скриптов powershell, первый выгружал список людей из OU, второй загонял этот список в нужную группу.

  1. Get-ADUser -SearchBase «OU=ouname1,OU=ouname2,DC=domain name,DC=local» -Filter * | Select-Object -Property sAMAccountName | Export-CSV -Path C:\users.csv
  2. Import-Module ActiveDirectory
    $adGroup = «groupname»
    Import-Csv «C:\users.csv» | ForEach-Object {
    $samAccountName = $_.»samAccountName»
    Add-ADGroupMember $adGroup $samAccountName;
    Write-Host «- «$samAccountName» added to «$adGroup}

В принципе обе команды выполняются недолго, в зависимости от количества пользователей.

Для тех у кого может не работать при копировании выгрузка пользователей из контейнера

Ссылки для тех у кого, возможно был проблемы с копированием скрипта с сайта. Проверил на тестовом серваке — всё работает как надо.

 

Добавление пользователей ad в группу

Добавление пользователей ad в группу: 25 комментариев

  • 12.06.2017 в 17:44
    Постоянная ссылка

    При импорте в csv пользователи внесенные в AD на русском языке превратились в ??????, как исправить ?

    Ответить
    • 12.06.2017 в 17:49
      Постоянная ссылка

      Если не изменяет память, нужно добавить»|encoding utf-8″ и должно работать, спасибо за комментарий поправлю на сайте

      Ответить
  • 13.06.2017 в 10:20
    Постоянная ссылка

    перед -Path нужно добавить -encoding default.
    Select-Object -Property sAMAccountName | Export-CSV -encoding default -Path C:\users.csv

    Первый скрипт отработал хорошо, делается файлик все ок.
    Второй скрипт не выполняется.
    Начал пробовать варианты.
    Для теста я из файла users.csv удалил всех пользователей кроме одного.
    Файл users.csv имеет след.вид:
    В А1 #TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser
    В А2 Иванов Иван
    Ошибки нет, но пользователь не добавился.
    Удалил из А1 #TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser
    и записал туда Иванов Иван.
    Пользователь добавился.

    Добавляю еще одного пользователя
    Имеем вид:
    А1 Иванов Иван
    А2 Степанов Степан

    Add-ADGroupMember : Не удается проверить аргумент для параметра «Members». Аргумент пустой или имеет значение NULL. Ука
    жите не пустой аргумент, не имеющий значение NULL, после чего повторите выполнение команды.
    C:\Users\xxxxxxxxx\ps\addusergp.ps1:5 знак:18
    + Add-ADGroupMember <<<< $adGroup $samAccountName;
    + CategoryInfo : InvalidData: (:) [Add-ADGroupMember], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGrou
    pMember

    В чём может быть проблема ?

    Ответить
        • 14.06.2017 в 08:44
          Постоянная ссылка

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

          Ответить
          • 14.06.2017 в 09:24
            Постоянная ссылка

            Очень жду результатов. Реально перерыл много ресурсов, а такого скрипта нету.

          • 14.06.2017 в 09:25
            Постоянная ссылка

            Вообщем мне скинули всю упаковку моих скриптов, домен запилю — отпишусь. И сюда и на почту.

          • 14.06.2017 в 12:40
            Постоянная ссылка

            Почта покатит так которая указана? При копировании с сайта скрипта идут два лишних пробела, могу подкинуть на почту два рабочих txtшника

  • 14.06.2017 в 13:19
    Постоянная ссылка

    Было бы просто замечательно если бы сюда прикрутить проверку учетки на заблокированная или нет,
    что бы не добавлять заблокированных пользователей.

    Ответить
    • 14.06.2017 в 13:26
      Постоянная ссылка

      На Хабре что-то подобное было, у меня был готовый скрипт, который тискал из всего ou список пользователей с датой последнего захода, удобная вещь — что бы мёртвые души искать.

      Ответить
  • 15.06.2017 в 10:54
    Постоянная ссылка

    У кого возникли проблемы с добавлением пользователей на русском языке
    делаем след:
    В первом скрипте меняем -encoding default на -Encoding Unicode
    Второй скрипт запускаем только через powershell ise.
    Все проверенно, работает.

    !!! Могут возникнуть проблемы при копировании скриптов с сайта (не хватает пару пробелов)!!!
    Автор лично скидывал скрипты на почту.

    Хочу поблагодарить автора за скрипты и помощь в их адаптации под русских пользователей.

    Ответить
    • 15.06.2017 в 11:23
      Постоянная ссылка

      Спасибо за комментарий, был рад помочь, если вдруг будут ещё вопросы — можно обратиться тестовый сервак имеется

      Ответить
  • 21.11.2018 в 14:12
    Постоянная ссылка

    Добрый день.
    Можно перечислить в ручную пользователей которых нужно добавить вместо файла C:\users.csv ?

    Ответить
      • 21.11.2018 в 15:11
        Постоянная ссылка

        Хотелось бы код с примером.
        Например: 2 пользователя. Иванов Иван, Сидоров Николай.
        Куда их тут вписывать нужно ?

        Import-Module ActiveDirectory
        $adGroup = «groupname»
        Import-Csv «C:\users.csv» | ForEach-Object {
        $samAccountName = $_.»samAccountName»
        Add-ADGroupMember $adGroup $samAccountName;
        Write-Host «- «$samAccountName» added to «$adGroup}

        Ответить
        • 21.11.2018 в 15:16
          Постоянная ссылка

          Это будет огромная длинная и не особо полезная портянка, проще добавить через оснастку ad «пользователи, Контакты и группы», касательно кода, у меня такой задачи не стояло, на этой неделе инвентаризация, смогу пример сделать на следующей.

          Ответить
          • 22.11.2018 в 12:22
            Постоянная ссылка

            Не нужно.
            Проще и быстрее в users.csv через notepad++ добавить нужных людей и через твой скрипт уже закинуть в группу.
            Минус или скорей особенность первого скрипта — это то что он пользователей с конкретной OU берёт.
            Если у тебя 1000+ пользователей и они в разным OU то проще сделать как я написал выше.

          • 22.11.2018 в 12:42
            Постоянная ссылка

            Можно дёрнуть с разных ou, можно с общего каталога, но обычно там много мусора

Добавить комментарий

Яндекс.Метрика