Как проверить, входит ли пользователь в определенную группу из определенного подразделения в Powershell - PullRequest
1 голос
/ 28 мая 2011

Вот мой вопрос.

У меня есть несколько OU, которые представляют физические местоположения, поэтому он структурирован следующим образом.

COMPANY.COM \ LOC1 \ Users (user1, user2, user3 и т. Д. ...) COMPANY.COM \ LOC2 \ Users (user4, user5, user6 и т. Д.)

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

OU LOC1, мне нужно убедиться, что все пользователи (user1, user2, user3) в OU LOC1 являются частью группы безопасности LOC1_GRP и выводить тех, которые не являются.

Ответы [ 3 ]

2 голосов
/ 28 мая 2011

как насчет Get-QADUser ? Вы можете отфильтровать всех пользователей, например, не принадлежащих к определенной группе, например:

get-qaduser -searchroot 'company.com/LOC1/Users' | ? {[string]$_.memberof -notmatch 'LOC1_GRP'}
1 голос
/ 30 марта 2012

Это должно сделать:

$groupname = "cn=group-blarr,ou=loc1,dc=company,dc=com"

Get-ADUser -filter {memberof -ne $groupname} -ResultPageSize 0 -SearchBase "ou=loc1,dc=company,dc=com" -Searchscope 2
0 голосов
/ 28 мая 2011

Просто чтобы завершить (и исправить) первый ответ:

  1. Командлет Quest для запроса Active-Directory можно использовать начиная с PowerShell V1.0, но в PowerShell V2.0 (W2K8 R2) Microsoft реализует свой собственный (просто импортирует модуль ActiveDirectory)
  2. Будьте осторожны с атрибутом memberOf в Active-Directory, потому что он просто пуст, когда вы создаете пользователя, даже если пользователь является членом группы пользователей домена (который является кодом в primaryGrouID), поэтому я переворачиваю тест .

PS C:\> get-adobject -SearchBase "ou=loc1,dc=company,dc=com"  -filter {objectclass -eq "user"} -properties memberof | where {!($_.memberof -match "mygroup")}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...