Как-то давно у меня встал вопрос как быстро добавить список пользователей в определённую созданную группу в 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 в группу: 17 комментариев

  • 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
      Постоянная ссылка

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

      Ответить

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

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