Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Поиск пользователей в AD являющихся членами нескольких (заданных) групп

Ответить
Настройки темы
PowerShell - Поиск пользователей в AD являющихся членами нескольких (заданных) групп

Пользователь


Сообщения: 126
Благодарности: 3

Профиль | Отправить PM | Цитировать


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

Есть группы безопасности в AD, к примеру Группа-1, Группа-2, Группа-3 и так далее. Как мне найти пользователей, которые входят сразу в несколько групп одновременно? Например user, являясь членом группы Группа-1 - это норма, но если он является членом группы Группа-1 и Группа-2 или Группа-1 и Группа-3 или Группа-1, Группа-2 и Группа-3 и множество подобных значений - этой фейл. Мне нужно поймать этих пользователей из всего каталога.

Пробовал так:

$users= Get-ADUser -Filter {Enabled -eq "True"} -Properties "MemberOf"
foreach ($user in $users)
{
if ($user.MemberOf -like "*Группа-*Группа-*")
{
$user.Name
}
}

Понял что делаю неправильно, так как поле memberOf имеет не строковый параметр... Как произвести верную выгрузку пользователей? Спасибо заранее.

Отправлено: 11:57, 04-04-2014

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


$user.MemberOf -match "Gr1|Gr2|Gr3"

Ps. А не проще идти от обратного? Получить список пользователей данных групп?

Отправлено: 12:10, 04-04-2014 | #2



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

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


Пользователь


Сообщения: 126
Благодарности: 3

Профиль | Отправить PM | Цитировать


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

Отправлено: 12:13, 04-04-2014 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


@($user.MemberOf -match "Gr1|Gr2|Gr3").Count -ge 2

или если через группы:

Код: Выделить весь код
"Gr1","Gr2","Gr3" | Get-ADGroupMember | Where objectClass -eq user | Group Name | where Count -ge 2

Последний раз редактировалось Kazun, 04-04-2014 в 12:22.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:14, 04-04-2014 | #4


Пользователь


Сообщения: 126
Благодарности: 3

Профиль | Отправить PM | Цитировать


Хм... Понял, спасибо. А можно как-то группы по маске указать "Группа-*" к примеру? У меня из уж 33 и могут динамически увеличиваться в кол-ве.

Отправлено: 12:39, 04-04-2014 | #5


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Зависит от шаблона. Например:
Код: Выделить весь код
-match "Группа-\d{1,2}\b"
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:46, 04-04-2014 | #6


Пользователь


Сообщения: 126
Благодарности: 3

Профиль | Отправить PM | Цитировать


Понял, спасибо.
Но, я так понимаю, чтобы искать четкое соответствие, лучше использовать не совпадение по -match, а командлет Get-ADGroupMember. Верно?

Отправлено: 12:54, 04-04-2014 | #7


Пользователь


Сообщения: 112
Благодарности: 20

Профиль | Отправить PM | Цитировать


А если так?

Get-ADUser -Identity User1 -Property Memberof | Select -ExpandProperty MemberOf

Отправлено: 13:12, 04-04-2014 | #8


Пользователь


Сообщения: 126
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата ratibor79:
А если так?
Get-ADUser -Identity User1 -Property Memberof | Select -ExpandProperty MemberOf »
Проясни, пожалуйста Select -ExpandProperty MemberOf...

Отправлено: 13:25, 04-04-2014 | #9


Пользователь


Сообщения: 112
Благодарности: 20

Профиль | Отправить PM | Цитировать


Цитата rudimko:
Проясни, пожалуйста Select -ExpandProperty MemberOf... »
Без -ExpandProperty и вывод свойства "Memberof" будет в одну строку, что совсем не удобно.

Так более наглядно будет. Попробуй.
foreach ($Group in Get-ADUser -Identity User1 -Property Memberof | Select -ExpandProperty MemberOf) {(Get-ADGroup $Group).Name}

Отправлено: 13:49, 04-04-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Поиск пользователей в AD являющихся членами нескольких (заданных) групп

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Создание групп пользователей в AD и настройка их параметров Vladimir_17 Microsoft Windows NT/2000/2003 7 12-07-2013 12:03
[решено] Определение прав групп пользователей GPO ncmps Microsoft Windows NT/2000/2003 9 22-11-2012 11:05
Настройки локальных групп и пользователей MICHEL5 Хочу все знать 7 14-05-2012 15:36
VBS/WSH/JS - Массовое создание пользователей, компьютеров, OU и групп. Anton04 Скриптовые языки администрирования Windows 12 30-07-2009 00:53
Ошибка - InfoPath2003 Присоединение групп безопасноти из AD Надир Microsoft Windows 2000/XP 0 15-08-2007 13:48




 
Переход