Powershell: подсчет членов группы ad

Физическая структура

Сайты — это физические (а не логические) группы, определяемые одной или несколькими IP- подсетями. AD также содержит определения соединений, отделяя низкоскоростные (например, WAN , VPN ) от высокоскоростных (например, LAN ) каналов. Определения сайтов не зависят от домена и структуры подразделений и являются общими для всего леса. Сайты используются для управления сетевым трафиком, генерируемым репликацией, а также для направления клиентов к ближайшим контроллерам домена (DC). Microsoft Exchange Server 2007 использует топологию сайта для маршрутизации почты. Политики также могут быть определены на уровне сайта.

Физически информация Active Directory хранится на одном или нескольких контроллерах однорангового домена , заменяя модель NT PDC / BDC . Каждый DC имеет копию Active Directory. Серверы, присоединенные к Active Directory и не являющиеся контроллерами домена, называются рядовыми серверами. Подмножество объектов в разделе домена реплицируется на контроллеры домена, настроенные как глобальные каталоги. Серверы глобального каталога (GC) предоставляют глобальный список всех объектов в лесу. Серверы глобального каталога реплицируют на себя все объекты из всех доменов и, следовательно, предоставляют глобальный список объектов в лесу. Однако для минимизации трафика репликации и сохранения небольшого размера базы данных GC реплицируются только выбранные атрибуты каждого объекта. Это называется частичным набором атрибутов (PAS). PAS можно изменить, изменив схему и пометив атрибуты для репликации в GC. В более ранних версиях Windows для связи использовался NetBIOS . Active Directory полностью интегрирована с DNS и требует TCP / IP — DNS. Для полноценной работы DNS-сервер должен поддерживать записи ресурсов SRV , также известные как служебные записи.

Репликация

Active Directory синхронизирует изменения с помощью репликации с несколькими мастерами . Репликация по умолчанию — это «вытягивание», а не «проталкивание», что означает, что реплики извлекают изменения с сервера, на котором это изменение было выполнено. Средство проверки согласованности знаний (KCC) создает топологию репликации ссылок сайтов, используя определенные сайты для управления трафиком. Внутрисайтовая репликация выполняется часто и автоматически в результате уведомления об изменении, которое заставляет одноранговые узлы начать цикл репликации по запросу. Интервалы межсайтовой репликации обычно реже и по умолчанию не используются уведомления об изменениях, хотя это можно настроить и сделать идентичным внутрисайтовой репликации.

У каждого канала может быть «стоимость» (например, DS3 , T1 , ISDN и т. Д.), И KCC соответственно изменяет топологию канала связи. Репликация может происходить транзитивно через несколько связей сайтов на мостах связей сайтов с одним и тем же протоколом , если стоимость невысока, хотя KCC автоматически стоит за прямую связь между сайтами меньше, чем за транзитивные соединения. Репликацию между сайтами можно настроить для выполнения между сервером-плацдармом на каждом сайте, который затем реплицирует изменения на другие контроллеры домена в пределах сайта. Репликация для зон Active Directory настраивается автоматически при активации DNS в домене на основе сайта.

Репликация Active Directory использует удаленные вызовы процедур (RPC) по IP (RPC / IP). Между сайтами SMTP можно использовать для репликации, но только для изменений в GC схемы, конфигурации или частичного набора атрибутов (глобального каталога). SMTP нельзя использовать для репликации раздела Домена по умолчанию.

Удаление пользователей спустя определенное время с Powershell Add-ADGroupMember -MemberTimeLive

В Windows Server 2016 появилась возможность автоматического удаления пользователей спустя время (временное членство) и без планировщика задач. Для работы ключа нам нужен 2016 уровень леса, который мы можем проверить так:

Кроме этого требуется активация PAM (Privileged Access Management). После однократного включения компонента его нельзя будет удалить. Проверить включен он у вас или нет можно так:

Если результата от команды нет, то он выключен. Для включения выполните:

Для установки временного интервала используется командлет New-TimeSpan:

Если мы выполним следующую команду, то сможем узнать о ходе времени членства в группе:

Значение TTL отображается в секундах.

Как создать группу в Active Directory

  • Группа Безопасности – как видно из названия эта группа относиться к безопасности, т.е. она управляет безопасностью. Она может дать права или разрешение на доступ к объектам в AD.
  • Группа распространения – отличается от группы безопасности тем, что находящимся в этой группе объектам нельзя дать права, а эта группа чаще всего служит для распространения электронных писем, часто используется при установке Microsoft Exchange Server.

Теперь поговорим об области действий групп. Под областью действий понимается диапазон применения этой группы внутри домена.

Глобальная группа – она глобальна тем, что может предоставить доступ к ресурсам другого домена, т.е. ей можно дать разрешения на ресурс в другом домене. Но в нее можно добавить только те учетные записи, которые были созданы в том же домене что и сама группа. Глобальная группа может входить в другую глобальную группу и в локальную группу тоже. Ее часто называют учетной, так как в нее обычно входят учетные записи пользователей.

Локальная группа – она локальна тем, что предоставляет доступ к ресурсам только того домена, где она была создана, т.е. предоставить доступ к ресурсам другого домена она не может. Но в локальную группу могут входить пользователи другого домена. Локальная группа может входить в другую локальную группу, но не может входить в глобальную. Ее часто называют ресурсной, так как ее часто используют для предоставления доступа к ресурсам.

Универсальная группа – в нее могут входить все, и она может, предоставляет доступ всем.

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

Администрирование Active Directory-3 часть. Создание групп при помощи оснастки ADUC.-02

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

Администрирование Active Directory-3 часть. Создание групп при помощи оснастки ADUC.-03

После чего мы видим область действия и типы группы, пишем название группы, старайтесь максимально подробно и осмысленно выбирать название группы, у вас в компании должны быть разработаны стандарты именования в Active Directory.

Администрирование Active Directory-3 часть. Создание групп при помощи оснастки ADUC.-04

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

Администрирование Active Directory-3 часть. Создание групп при помощи оснастки ADUC.-05

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

Через поиск находим нужного пользователя.

Администрирование Active Directory-3 часть. Создание групп при помощи оснастки ADUC.-07

Все Иванов Иван Иванович, теперь является членом группы.

Администрирование Active Directory-3 часть. Создание групп при помощи оснастки ADUC.-08

Вкладка Член групп, показывает в какие группы входит данная группа. Может объединяющей группе пользователей давать права для примера, у меня в организации есть программисты, и им нужен сервер VPN, для удаленного подключения, так они состоят в группе разработчики, которая уже является часть группы vpn пользователи.

Администрирование Active Directory-3 часть. Создание групп при помощи оснастки ADUC.-09

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

Администрирование Active Directory-3 часть. Создание групп при помощи оснастки ADUC.-10

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

Материал сайта Pyatilistnik.org

Стратегии использования групп Active Directory

Теперь поговорим о стратегии использования групп, компания Microsoft рекомендует следующею стратегию, я в принципе согласен с их стратегией, с помощью нее можно легко управлять разрешениями и правами в большой компании.

AGDLP — accounts > global groups > local groups > permissions.

Другими словами, Вы учетные записи пользователей добавляете в глобальные группы, а глобальные группы добавляете в локальные группы, а локальным группам предоставляете доступ к ресурсам. Организация такой стратегии на предприятие позволит Вам намного упростить управление правами и разрешениями (удобство, сокращение времени на изменение прав и разрешений). Не зря глобальные группы называют учетными, а локальные ресурсными.

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

Ну и в заключение подведем итог, группы в Active Directory – это хорошо! Их нужно использовать, по средствам вышеперечисленных стратегий, или другой своей стратегии.

НравитсяНе нравится

9 ответов

Лучший ответ

Командлет решит эту проблему гораздо более эффективно, чем вы связываете.

Например:

РЕДАКТИРОВАТЬ:

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

15

Alex McKenzie
11 Мар 2021 в 15:04

Пытаться:

Это сработало для меня в группе, насчитывающей более 17000 участников.

noam621
25 Фев 2020 в 16:15

Как насчет этого?

Willy N
23 Май 2017 в 15:36

Что-то, чем я хотел бы поделиться …

фактически дает вдвое больше фактических членов. ( без «s» ) возвращает правильную сумму. Даже при выгрузке и на экран выводится меньшее количество элементов.

Не знаю, как это объяснить!

Carl Binalla
22 Мар 2017 в 09:17

В Powershell вам нужно будет импортировать модуль Active Directory, затем использовать get-adgroupmember, а затем measure-object. Например, чтобы узнать количество пользователей, входящих в группу «пользователи домена», выполните следующие действия:

При вводе имени группы после «Get-ADGroupMember», если имя представляет собой одну строку без пробелов, то кавычки не требуются. Если в названии группы есть пробелы, используйте кавычки.

Результат будет выглядеть примерно так:

Примечание. Импорт модуля Active Directory может быть избыточным, если вы уже используете PowerShell для других задач администратора AD.

user6357469
19 Май 2016 в 17:24

Если вы не можете использовать модуль или командлет , вы можете сделать это с помощью правила сопоставления LDAP «в цепочке»:

1

Mathias R. Jessen
17 Ноя 2014 в 17:06

Вышеупомянутая однострочная строка дает точное количество найденных рекурсивных элементов. Просто, легко и в одну строку.

2

Chris B
21 Июн 2017 в 14:38

Простой способ сделать это: чтобы получить фактическое количество пользователей:

И вы легко получаете подсчет, это также довольно быстро для более чем 20 тысяч пользователей

5

Zsolt Varga
28 Фев 2017 в 22:53

В каждом ответе упускается одна деталь. Что делать, если в группе всего 1 пользователь.

Поместите команду в оболочку @ (), чтобы результат был массивом, несмотря ни на что, поэтому, даже если это 1 элемент, вы получите счет.

6

Jean-Claude DeMars
10 Апр 2018 в 20:21

Group

Для получения объекта группы мы используем командлет Get-ADGroup.

Get-ADGroup -Identity somegroup

Для получения непосредственно входящих в нее объектов, будь то пользователь, компьютер или группа — командлет Get-ADGroupMember.

Get-ADGroupMember -Identity somegroup

Для того, чтобы получить список как непосредственных участников группы, так и тех, кто является членом всех вложенных групп, мы можем воспользоваться параметром -Recursive.

Стоит сказать, что использование этого параметра изменяет вывод таким образом, что присутствовать в нем будут только объекты, не имеющие дочерних объектов. То есть информация о вложенных группах среди результатов вывода будет отсутствовать.

Например:

Get-ADGroupMember -Identity somegroup -Recursive

Кроме того, получить список участников группы мы можем, запросив значение атрибута Member:

Get-ADGroup somegroup -Properties Member | Select-Object -ExpandProperty Member

Стоит сказать, что командлет Get-ADGroup добавляет еще один атрибут — Members — равнозначный по содержанию атрибуту Member. Таким образом, если для выполнения запросов к Active Directory вы используете командлеты одноименного модуля, вы можете обращаться к любому из этих двух атрибутов.

Get-ADGroup somegroup -Properties Members | Select-Object -ExpandProperty Members

При использовании других способов, например ADSI, нам будет доступен только атрибут Member.

Также мы можем использовать вид запроса с использованием свойства AttributeScopeQuery объекта DirectorySearcher:

Начиная с Windows Server 2012 R2, мы можем получить список всех членов группы, как непосредственных, так и входящих во вложенные группы, обратившись к атрибуту типа constructed — msds-MemberTransitive.

Стоит упомянтуь, что использовать для этого командлет Get-ADGroup не получится. Вместо этого нам понадобится командлет Get-ADObject.

Get-ADObject -Identity "CN=somegroup,OU=groups,DC=domain,DC=com" -Properties msds-MemberTransitive | Select-Object -ExpandProperty msds-MemberTransitive

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

При помощи ADSI мы можем запросить значение атрибута msds-MemberTransitive следующим образом:

В данном случае нам пришлось явно указать нужную группу в качестве значения свойства SearchRoot, потому что получение значений большинства constructed-атрибутов (кроме таких, как createTimestamp, modifyTimestamp, structuralObjectClass и objectClasses) через ADSI возможно только при SearchScope в значении ‘Base’.

Еще одним способом получения списка всех членов группы, явных или неявных, является использование оператора -RecursiveMatch. Например, так:

Get-ADUser -Filter {MemberOf -RecursiveMatch "CN=somegroup,OU=groups,DC=domain,dc=com"}

Get-ADComputer -Filter {MemberOf -RecursiveMatch "CN=somegroup,OU=groups,DC=domain,dc=com"}

Get-ADObject -Filter {MemberOf -RecursiveMatch "CN=somegroup,OU=groups,DC=domain,dc=com"}

Если же нас интересует только, например, входит ли определенный пользователь в определенную группу, мы можем поступить следующим образом:

Get-ADUser -Filter {MemberOf -RecursiveMatch "CN=somegroup,OU=groups,DC=domain,dc=int"} -SearchBase "CN=someuser,CN=Users,DC=domain,DC=com"

При использовании LDAP, синтаксис немного изменится:

Где 1.2.840.113556.1.4.1941 — это Object ID правила LDAP_MATCHING_RULE_IN_CHAIN, что является LDAP-аналогом оператора -RecursiveMatch.

При использовании ADSI запросы будут выглядеть следующим образом:

История

Как и многие другие усилия в области информационных технологий, они возникли в результате с использованием запросов на комментарии (RFC). Engineering Task Force Интернета (IETF), который контролирует процесс RFC, принял многочисленные РЛК инициированных распространёнными участниками. Например, LDAP лежит в основе Active Directory. Также каталоги X.500 и организационная единица предшествовали концепции Active Directory, которая использует эти методы. Концепция LDAP начала появляться еще до основания Microsoft в апреле 1975 года, а RFC появились еще в 1971 году. RFC, вносящие вклад в LDAP, включают RFC 1823 (по API LDAP, август 1995 года), RFC 2307, RFC 3062 и RFC 4533.

Microsoft представила Active Directory в 1999 году, впервые выпустила ее с выпуском Windows 2000 Server и изменила ее, чтобы расширить функциональные возможности и улучшить администрирование в Windows Server 2003 . Поддержка Active Directory была также добавлена ​​в Windows 95, Windows 98 и Windows NT 4.0 с помощью патча, при этом некоторые функции не поддерживаются. Дополнительные улучшения появились в последующих версиях Windows Server . В Windows Server 2008 в Active Directory были добавлены дополнительные службы, такие как службы федерации Active Directory . Часть каталога, отвечающая за управление доменами, которая ранее была основной частью операционной системы, была переименована в доменные службы Active Directory (ADDS) и стала ролью сервера, как и другие. «Active Directory» стала общим названием для более широкого диапазона служб каталогов. По словам Байрона Хайнса, все, что связано с идентификацией, было перенесено под знамя Active Directory.

Как создать Organizational Unit с помощью консоли ADUC

Для создания Organizational Unit ваша учетная запись должна обладать правами Domain Admins, или ей должны быть делегированы полномочия на создание новый OU (во всем домене или конкретном контейнере).

Откройте оснастку Active Directory Users and Conputers (ADUC – dsa.msc) и выберите контейнер домена, в котором вы хотите создать новый OU (мы создадим новый OU в корне домене). Щелкните ПКМ по имени домена и выберите New -> Organizational Unit. Укажите имя создаваемого OU.

По умолчанию все создаваемые Organizational Unit защищены от случайного удаления.

Если вы откроете свойства созданного OU, вы увидите что на вкладке Object включена опция «Protect object from accidental deletion». Чтобы вы могли удалить данный OU, нужно снять данный чекбокс. При удалении OU удаляются все другие объекты, которое содержатся в контейнере.

Пример делегирование административных полномочий

«Поддержка»

Для начала следует на контроллере домена открыть оснастку «Active Directory – пользователи и компьютеры». Здесь необходимо создать глобальную группу безопасности, члены которой смогут присоединять компьютеры пользователей к домену. Другими словами, эта группа будет выглядеть следующим образом:Рис. 1. Свойства группы, отвечающей за присоединение компьютеров к домену

Следующим делом необходимо указать, что компьютеры присоединять к домену могут только лишь пользователи, входящие в созданную на предыдущем этапе глобальную группу безопасности. Для этого следует открыть оснастку «Управление групповой политикой» и перейти к редактору GPME для созданного по умолчанию объекта GPO «Default Domain Controllers Policy», который располагается в подразделении «Domain Controllers».
В отобразившейся оснастке следует перейти к узлу «Конфигурация компьютера\Политики\Конфигурация Windows\Параметры безопасности\Локальные политики\Назначение прав пользователей» и локализовать параметр политики, который называется «Добавление рабочих станций к домену». Открыв диалоговое окно данного параметра политики, вы сразу сможете обнаружить, что по умолчанию там указана группа «Прошедшие проверку», благодаря которой присоединять компьютеры к домену может каждый пользователь. Теперь, для того, чтобы разрешить присоединять к домену компьютеры только пользователям из группы безопасности «Поддержка», следует удалить группу, указанную в этом параметре политики по умолчанию, а затем при помощи кнопки «Добавить пользователя или группу» и диалога поиска объектов Active Directory, следует добавить созданную ранее глобальную группу безопасности. Процесс добавления такой группы изображен на следующей иллюстрации:Рис. 2. Изменение группы, отвечающей за присоединение компьютеров к домену

Теперь несмотря на то, что немного ранее было описано, в каких сценариях выполняется делегирование, и что в большинстве случаев делегирование выполняется на уровне подразделений, в данном случае для предоставления возможности присоединения компьютеров к домену, нам следует в оснастке «Active Directory – пользователи и компьютеры» вызвать мастер делегирования непосредственно для уровня всего домена. Следовательно, в оснастке «Active Directory – пользователи и компьютеры» необходимо в области дерева самой оснастки вызвать контекстное меню для домена и выбрать опцию «Делегирование управления», как показано ниже:Рис. 3. Вызов мастера делегирования управления

На первой странице мастера можно просто ознакомиться с основной задачей данного средства и, ввиду того, что на первой странице нельзя выполнять какие-либо действия, следует просто нажать на кнопку «Далее». На второй странице мастера, странице «Пользователи и группы», нужно локализовать группу, для которой необходимо делегировать управление. В данном примере следует нажать на кнопку «Добавить» и при помощи соответствующего диалога выбрать группу «Поддержка», как показано на следующей иллюстрации:Рис. 4. Добавление группы, для которой выполняется делегирование управления
После того, как группа будет добавлена, для перехода к следующей странице мастера следует нажать на кнопку «Далее».
Страница «Делегируемые задачи» позволяет вам определить конкретные операции, которые должны выполнять в доменных службах Active Directory пользователи или группы пользователей, которые были добавлены на предыдущей странице мастера. Так как в данном примере делегируется задача присоединения компьютеров к домену и такую задачу можно найти в предоставленном списке распространенных задач, следует напротив задачи «Присоединение компьютера к домену» установить флажок и нажать на кнопку «Далее»

Стоит обратить внимание на то, что данный мастер позволяет делегировать не только те задачи, которые фигурируют в данном списке, и в том случае, если вы не смогли здесь сразу найти конкретную задачу, нужно будет создавать особую задачу для делегирования. Создание особой задачи будет показано далее в этой статье, а делегирование задачи присоединения компьютера к домену изображено на следующей иллюстрации:Рис

5. Делегирование задачи присоединения компьютеров к домену для членов группы «Поддержка»

На последней странице мастер повторно проинформирует о том, что работа мастера была успешно выполнена и определенной группе пользователей было передано управление для присоединения компьютеров к домену, что, собственно, и являлось поставленной перед нами задачей:Рис. 6. Завершение процесса делегирования управления

«Поддержка»

Get-ADUser: экспорт пользователей AD в CSV/TXT

Полученный список пользователей домена с атрибутами можно экспортировать в текстовый файл:

Get-ADUser -Filter * -Properties PasswordExpired,PasswordLastSet,PasswordNeverExpires | Format-Table Name,PasswordExpired,PasswordLastSet,PasswordNeverExpires > C:\temp\users.txt

Или вы можете экспортировать список пользователей AD в файл CSV (который позже будет удобно импортирован в Excel):

Get-ADUser -filter * -Properties PasswordExpired,PasswordLastSet,PasswordNeverExpires | Where-Object {$_.name –like "*Dmitry*"} | Sort-Object PasswordLastSet | Select-Object Name,PasswordExpired,PasswordLastSet,PasswordNeverExpires | Export-csv -path c:\tmp\user-passwords-expires.csv -Append -Encoding UTF8
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: