Не удается запросить пользователей AD в функции - PullRequest
0 голосов
/ 04 сентября 2018

Сложно объяснить вопрос в одном предложении.

Проблема

Я создал функцию, которая должна добавлять всех пользователей из группы (огромная группа с тысячами пользователей) в массив. Каждый раз, когда функция видит группу, она вызывает себя с этой группой.

Проблема в том, что основная часть и только эта строка $tempUsers = Get-ADUser -LDAPFilter "(&(memberof=$($myGroup.distinguishedname)))" не выполняется вообще.

Он просто заканчивает сценарий после того, как я его запустил.

Функция

function Get-AllMembersFromGroup {
  [CmdletBinding()]
  [Alias()]
  Param
  (
      # Postfach auf dieses Berechtigt werden soll
      [Parameter(Mandatory=$false,
                ValueFromPipelineByPropertyName=$true,
                Position=0)]
      [string]
      $Identity
  )

  Begin {
      $users = @()
      $myGroup = Get-ADGroup $Identity
      $tempUsers = Get-ADUser -LDAPFilter "(&(memberof=$($myGroup.distinguishedname)))"
  }

  Process {
      foreach($user in $tempUsers) {
          if($user.GetType().Name -eq "ADPrincipal") {
              Get-AllMembersFromGroup -Identity $user
          } else {
              $users += $user
          }
      }
  }

  End {
      #$users.count
  }

}

Я не понимаю. Я поместил несколько операторов "write-host" в то, что печатается, а что нет. Первая строка $myGroup = Get-ADGroup $Identity запускается и содержит группу объявлений внутри.

Но после этого $tempUsers = Get-ADUser -LDAPFilter "(&(memberof=$($myGroup.distinguishedname)))" -> $tempUsers просто пусто.

Если я раскомментирую последнее утверждение $users.count, оно напечатает 0 сразу после запуска сценария

Когда я запускаю команду простым PowerShell:

$tempUsers = Get-ADUser -LDAPFilter "(&(memberof=$($myGroup.distinguishedname)))"

это работает, и после 10 секунд ожидания у меня есть 3000 пользователей в этой переменной, как я и хотел.

Что я делаю не так? Вы можете найти проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...