Проблема с передачей переменной в get-aduser cmdlt - PullRequest
0 голосов
/ 09 мая 2018

Просто начинаю работать с Powershell, и я столкнулся с препятствием. Я пытаюсь перебрать AD и получить список всех OU. Оттуда я пытаюсь получить информацию об учетной записи пользователя для каждого пользователя в каждом подразделении. Чтобы проверить, я смог получить DN для всех OU и вывести на консоль, но когда я пытаюсь передать эти значения в команду get-aduser cmdlt, происходит сбой.

Вот мой код:

import-module activedirectory
$SearchBase = get-adorganizationalunit -filter * -searchbase "ou=users,ou=myUsers,dc=company,dc=local" -Properties CanonicalName | select-object -Property distinguishedName
foreach ($ou in $SearchBase) {
get-aduser -filter * -searchbase $ou -Properties givenName,sn,mail
}

Я получаю следующее сообщение об ошибке: «Указанное имя в различиях должно принадлежать одному из следующих разделов ...»

Я думаю, что проблема в том, что при передаче $ ou в команду get-aduser различающееся имя должно быть заключено в кавычки после -searchbase правильной? Если это так, не уверен, как это сделать. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 09 мая 2018

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

get-adorganizationalunit -filter * -searchbase "ou=users,ou=myUsers,dc=company,dc=local" -Properties CanonicalName | select-object -Property distinguishedName

Будет показано родительское свойство:

enter image description here

Существует два способа исправить это:

  1. Разверните свойство в выбранном вами утверждении:

    $SearchBase = get-adorganizationalunit -filter * -searchbase "ou=users,ou=myUsers,dc=company,dc=local" -Properties CanonicalName | select-object -ExpandProperty distinguishedName

  2. ИЛИ Позвоните в собственность в вашем foreach:

    foreach ($ou in $SearchBase) { get-aduser -filter * -searchbase $ou.distinguishedName -Properties givenName,sn,mail }

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