Получить ADUser сортировать по memberof не работает для меня - PullRequest
1 голос
/ 29 января 2020

Мне нужно извлечь список всех членов определенного подразделения, которые являются членами одной и той же группы. Проблема в том, что это работает, только если я использую -match, однако он также выбирает группы с похожим именем. Если я использую -eq, он ничего не получает, несмотря на то, что пользователи являются членами этой конкретной группы. Кто-нибудь, кто мог бы помочь мне понять, что я делаю неправильно?

Сценарий powershell, который я использовал;

Get-ADUser -Filter * -SearchBase 'OU=NewUsers,DC=LOCAL' -properties memberof | Where-Object {$_.memberof -eq 'APP-KMD'} | Select SamAccountName

Ответы [ 3 ]

0 голосов
/ 30 января 2020

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

$brugere = Get-ADUser -Filter * -SearchBase 'OU=NewUsers,DC=LOCAL' -Properties * | Select-Object SamAccountName
$gruppemedlem = Get-ADGroupMember -Identity app-kmd | select SamAccountName

ForEach ($bruger in $brugere)
{   

If ($gruppemedlem.samaccountname -contains $bruger.SamAccountName) {
    Write-Host $bruger }
} 
0 голосов
/ 03 февраля 2020

Помните, что значение атрибута memberOf - это DN группы, поэтому вам нужно сопоставить все DN, а не только CN группы. Вы можете получить DN группы в подзапросе и использовать его непосредственно в фильтре, то есть:

Get-ADUser -LDAPFilter "(memberof=$(Get-ADGroup APP-KMD))" -SearchBase 'OU=NewUsers,DC=LOCAL' | Select SamAccountName
0 голосов
/ 29 января 2020

Ваша проблема с оператором сравнения, вот некоторые различия между ними:

Сравнение чисел:

  • экв (равно)
  • ne (не равно)
  • GT (больше чем)
  • lt (меньше)
  • le (меньше или равно)
  • ge (больше чем или равно)

Сравнение строк:

  • -like и -notLike (сравнение строк с подстановочными знаками, символы подстановки * и?), не путать с - содержит оператор.

Сравнение регулярных выражений

  • -match и -notMatch (сопоставление с регулярными выражениями)

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

...