将具有活动目录电子邮件属性的用户添加到包含"@abc.com"的组中



我们有票务系统为新加入者创建窗口ID,我们需要根据他们的电子邮件域将新用户添加到特定的分组中。

例如,如果用户的电子邮件地址是thomas@abc.com,它将检查电子邮件地址是否包含@abc.com,然后将其添加到test_group;如果用户在组中,则跳过此步骤。

$Users = Get-ADUser -Filter * -Properties emailaddress
foreach ($user in $Users)
{
    if ($user.emailaddress -match "abc.com") 
    {
            $GroupMembers = Get-ADGroupMember -Identity "test_group" | Select -ExpandProperty SamAccountName
            if ($User.SamAccountName -NotIn $GroupMembers)
            {
            Add-ADGroupMember -Identity "test_group" -Members $User
            }
        }
    }

但是在我执行后,我遇到了如下错误

必须在"-"运算符的右侧提供值表达式。
行:9 字符:42

表达式或语句中出现意外的标记"NotIn"。
行:9 字符:43

表达式或语句中出现意外标记"组成员"。
行:9 字符:49

非常感谢您提前提供的帮助。

问题是您在代码中使用了-NotIn比较运算符。
但是,此运算符仅在PowerShell 3中引入,不适用于您的PoSh版本。

可以在 PowerShell v2.x 及更高版本中使用 -NotContains。但是,您将需要撤销支票。使用 -NotIn,您可以将值与集合进行比较,而使用 -NotContains 则通过将集合与值进行比较来执行相反的操作。

相关内容

最新更新