Фильтрация группы AD по свойствам пользователя;Возвращение ненадлежащим образом - PullRequest
0 голосов
/ 25 января 2019

Отказ от ответственности: я не очень хорошо разбираюсь в PowerShell, это в основном убитый код.Я извиняюсь, если это сделано плохо или это глупый вопрос.

Я пытаюсь отфильтровать пользователей ACTIVE в моей компании по их компании (ET) и по тому, находятся ли они в определенной группе.

Таким образом, фильтр для пользователей ACTIVE в компании «ET» работает правильно, вывод этого скрипта дает мне каждый активный пользователь с этим параметром;он не фильтрует его далее только на пользователей в определенной группе.

$users = Get-ADUser -filter {(Enabled -eq $True) -and (Company -eq "ET")}  
-SearchBase 'DC=CSOKI,DC=Local' |select -exp samaccountname
$group = "O365-E3-Full"
$members = Get-ADGroupMember -Identity $group -Recursive | Select - 
ExpandProperty samaccountname
ForEach ($user in $users) {
If ($members -contains $user) {
  Write-output  $(name) | out-file ".\TEST.txt"
 } Else {
  Write-Host "$user does not exist in the group"
}}

Ожидается: вывод ACTIVE пользователей в компании ET, которые находятся в группе O365-E3-FULL, и пользователей write-host, которые не являются (ненужный, я просто хочу фильтр).

Факт: запись-хост каждого пользователя ACTIVE в компании ET и игнорирование группового фильтра.

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Извините, довольно быстрый стук вместе

# Create empty array
$answer = New-Object System.Collections.ArrayList

# If is in group then add to array
If ($members -contains $user) {
  $answer.Add($user) > $null
} Else {
  Write-Host $user "does not exist in the group"
}

# Output the array to the text file
Write-output  $answer | out-file ".\TEST.txt"
0 голосов
/ 26 января 2019

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

| Select -exp samaccountname

Затем, получая членов группы, вы получаете Имя with:

| Select -ExpandProperty Name

Вы должны выбрать SamAccountName в обоих ваших Gets

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