Назад | Перейти на главную страницу

перечислить имена пользователей в определенном OU + Группы

Мне нужно написать сценарий Powershell, чтобы перечислить имена пользователей в конкретном подразделении + группы, к которым принадлежит пользователь (но мне нужно указать конкретную группу, а не видеть все группы).

Пример: OU: A

Пользователи под OU A

они являются членами групп X Y Z ...

Я нашел вот это:

Get-ADUser -Filter * -Properties samaccountname,memberof,description -SearchBase "OU" | 
 
foreach {
 
  $sam = $_.samaccountname
  $description = $_.description
 

  foreach ($group in $_.memberof) {
 
    New-Object PSObject -Property @{
 
      UserName = $_.samaccountname;
      Desc = $_.description
      
     Group = ($group -split ",")[0].Substring(3) 
 
    }
 
  }
 
} |select  username,Desc,Group 

Но он отобразит все группы для пользователя, и я хочу показать всех пользователей и их группы (но не все группы только y x)

Я хочу перечислить все имена пользователей в OU A и группах (но я хочу видеть только группу y ​​x). Кто-нибудь может мне помочь?

Спасибо

Два пути:

  • а Where-Object пункт в вашем втором Foreach
  • ан If заявление внутри этого Foreach

Такие как:

foreach ($group in ($_.memberof | where {$_ -match 'whatever'})) { …

Или

foreach ($group in $_.memberof) {
    if ($group -match 'whatever') {
        # create a PSCustomobject if you're using v3+
        [pscustomobject]@{

        }
    }
}

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

$users = get-aduser …
foreach ($u in $users) { …

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