Powershell Get ADUser фильтр - PullRequest
       3

Powershell Get ADUser фильтр

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

У меня есть объект с именем $data. Я хочу, чтобы l oop через этот объект, чтобы получить ADUsers, а затем поработать с этим пользователем. Проблема у меня в том, что фильтр ничего не возвращает. Вот что у меня есть.

foreach($object in $data)
{ 


    $ADuser = Get-ADUser -filter * -Properties * -SearchBase "$($object.ouPath)" |
               ? { $_.objectGUID -eq $object.GUID -and $_.employeeNumber -eq $object.personID } |
                Select-Object employeeNumber,
                    SamAccountName,
                    Enabled
    try
    {}
    catch
    {}
}

$data содержит следующую информацию:

personID : 9408
firstName : John
lastName : Doe
GUID : dde044a6-b11a-4c23-a4c3-7dfe798a98ce
ouPath : OU=test,DC=my,DC=domain

1 Ответ

1 голос
/ 01 мая 2020

Если ваш запрос без условий в предложении Where-Object работает, то либо пользователь с такой комбинацией атрибутов либо отсутствует, либо вы ошибаетесь EmployeeNumber с EmployeeID.

Кроме того, получая все пользователей сначала получают всех своих свойств и отфильтровывают одного пользователя, которого вы ищете, что расточительно. Лучше использовать параметр -Filter, который ускоряет процесс.

Что-то вроде:

foreach($object in $data) { 
    # check if you don't need the EmployeeID attribute instead of EmployeeNumber
    $filter = "ObjectGUID -eq '$($object.GUID)' -and EmployeeNumber -eq '$($object.personID)'"
    $ADuser = Get-ADUser -Filter $filter -Properties EmployeeNumber -SearchBase $object.ouPath -ErrorAction SilentlyContinue

    if ($ADuser) {
        # user found, do what needs to be done here. For demo, just output to console
        $ADuser | Select-Object EmployeeNumber, SamAccountName, Enabled
    }
    else {
        Write-Warning "Could not find user with ObjectGUID = '$($object.GUID)' and EmployeeNumber = '$($object.personID)'"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...