PowerShell - [решено] get-aduser -filter с массивом?

Аватара пользователя
Kazun

Re: PowerShell - [решено] get-aduser -filter с массивом?

Сообщение Kazun »

Что возвращает код:

Код: Выделить всё

Compare-Object (get-content путь_к_файлу_txt | foreach {$_.Trim()}) (get-aduser -fi * |  foreach {$_.samaccountname}) | 
	Where {$_.SideIndicator -eq "<="} | Foreach { try {Get-ADUser $_.InputObject} catch {}}
Аватара пользователя
Kazun

Re: PowerShell - [решено] get-aduser -filter с массивом?

Сообщение Kazun »

Странное поведение, а код:



Код:

Код: Выделить всё

$users = Get-Content C:\Users\nokogerra\Desktop\us.txt
Get-ADUser -Filter * | Where {$users -notcontains $_.SamAccountName} | Select Name,SamAccountName
Аватара пользователя
nokogerra

Re: PowerShell - [решено] get-aduser -filter с массивом?

Сообщение nokogerra »

вывело всех пользователей, samaccountname которых нет в текстовом файле. хм, т.е. это еще одно решение моей первоначальной задачи, но не совсем понятное, разве contains и notcontains так работают? они вроде должны возвращать булевое значение. И должно оцениваться, входит ли $_.samaccountname в $users, а не наоборот, разве нет?
Аватара пользователя
Kazun

Re: PowerShell - [решено] get-aduser -filter с массивом?

Сообщение Kazun »

они вроде должны возвращать булевое значение - Так и возвращается булевое значение, если пользователь есть в AD, но нет в файле, то выводим объект на консоль.
Аватара пользователя
nokogerra

Re: PowerShell - [решено] get-aduser -filter с массивом?

Сообщение nokogerra »

Сначала я не понял логики, но потом все же дошло: проверка "пообъектно", где объект - это атрибут samaccountname, т.е. если совпало, значит FALSE, не совпало - TRUE (при частичном совпадении тоже) и при TRUE, пользователь будет выведен.

Спасибо большое за помощь, Вы предложили 2 рабочих варианта, не вижу особого смысла ковыряться в лишних "
Ответить

Вернуться в «Скриптовые языки администрирования Windows»