Попытка проверить, находится ли группа AD в определенном подразделении - PullRequest
0 голосов
/ 05 июня 2019

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

Я попытался отформатировать Get-ADGroup в виде таблицы и списка, а также в виде строки без удачи. Я также пытался использовать операторы сравнения -in -like и -contains. без удачи ..

$GroupAddEvent = Get-EventLog -ComputerName *DCNAME* -LogName "Security" -InstanceID 4756 -Newest 1
$EventGroup = $($GroupAdditionEvent.ReplacementStrings[2])
$UserResponsible = $($GroupAdditionEvent.ReplacementStrings[6])
$UserAdded = $($GroupAdditionEvent.ReplacementStrings[0])
$GroupEventMessage = $GroupAdditiondEvent.Message
$ADGroups = Get-ADGroup -Filter * -SearchBase "*OUPATH*" | select name | fl
if($ADGroups.Contains($EventGroup)) {"True"}
else {"False"}

Переменная $ADGroups должна возвращаться со всеми группами в определенном OU, а переменная $EventGroup должна быть группой, которую я ищу в списке ...

Ответы [ 2 ]

1 голос
/ 05 июня 2019

Попробуйте заменить эту строку:

$ADGroups = Get-ADGroup -Filter * -SearchBase "*OUPATH*" | select name | fl

на:

$ADGroups = Get-ADGroup -Filter * -SearchBase "*OUPATH*" | select -expand name
0 голосов
/ 05 июня 2019

Используйте что-то вроде следующего:

$EventGroup = Get-ADGroup -Filter * -SearchBase "*OUPATH*" | Select-Object -ExpandProperty Name
if($ADGroups -Contains $EventGroup)
...