尝试验证AD组是否在特定的OU中

时间:2019-06-05 15:04:51

标签: powershell active-directory contains

每次将用户添加到组中时,我都会在DC上提取事件日志。如果要将用户添加到特定OU内的组中,我想发送电子邮件。我能够成功列出添加用户的组的名称,以及获取特定OU中的组名称的列表,但是当我尝试检查事件中的组名称是否在列表中时它总是返回为假。

我尝试将 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 个答案:

答案 0 :(得分:1)

尝试替换此行:

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

具有:

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

答案 1 :(得分:0)

使用类似以下的内容:

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