Массив PowerShell с фильтром ~ ParameterBindingException - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь составить список пользователей и сравнить их имена SamAccount с Active Directory и отфильтровать, какие учетные записи AD пользователей отключены.

При выполнении сценария я получаю сообщение об ошибке ниже.

Я делаю следующее:

$Names = @("Shannon.Hoffman","Kameron.Mack","Ashleigh.Reeves","Diego.Colon","Mayra Ortega","Mark.Dunn")
Get-ADUser -Filter {(Enabled -eq "False") -and (SAMAccountName -like $Names)}

Я получаю это сообщение об ошибке:

Get-ADUser : Cannot convert 'System.Object[]' to the type 'Microsoft.ActiveDirectory.Management.ADUser' required by parameter 'Identity'. Specified method is not supported.

Я также получаю сообщение об ошибке ParameterBindingException

Я относительно новичок в PowerShell. Не могли бы вы помочь мне понять, что я делаю неправильно?

Большое спасибо!

1 Ответ

2 голосов
/ 31 мая 2019

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

С одной стороны, вы фильтруете, используя весь список, а не на пользователя, поэтому вам нужно будет использовать цикл.Что-то вроде приведенного ниже может сделать то, что вам нужно:

$Names = @("username1","username2")
Foreach ($Name in $Names){
    $User = Get-ADUser -Identity $Name
    if ($User.Enabled){
        #user is enabled, add to your list
    }
}

Вот некоторые дополнительные чтения:

Foreach

Трубопровод

PS AD

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