- 此问题在此处已有答案**:
I am trying to add members to a AD group based on a value in the "title" attribute(3个答案)
19天前关闭。
我正尝试根据"title"属性中的值向AD组添加成员。我想使用大约30个不同的标题。是否有方法编写不包含30个"OR"语句的命令?
谢啦,谢啦
Get-ADuser -filter {(title -eq "SECSCH") -or (title -eq "SEC12") -or (title -eq
"LTOSEC") -or (title -eq "LTO12")} | %{Add-ADGroupMember "SDK test print color"
$_.SamAccountName}
此外,对于另一组我想所有的"custod"在标题中,除非他们的"位置"属性是"85c"或位置"42c"下面是我在哪里。
Get-ADuser -filter {(title -eq "custod") -and (locationNumber -ne "85c") -or (title -eq
"custod") -and (locationNumber -ne "42c")} | %{Add-ADGroupMember "SDK test print
convert" $_.SamAccountName}
2条答案
按热度按时间soat7uwm1#
可以使用-in指定要与title属性进行比较的值列表
下面是一个例子:
在相同的策略中,您可以排除带有操作符注解的位置
eblbsuwk2#
我使用一种过程方法将这种东西构建到LDAP过滤器中,我觉得这比大量
-or
语句更容易构造。注意,我在列表中插入了一个通配符。例如,它将捕获所有长度正好为5个字符、以“12”结尾的标题。在您的环境中可能会有类似的快捷方式。
如果使用通配符查询,但希望排除某些可能的结果,则始终可以添加NOT子句(确保它们位于AND子句内,而不是OR子句内!):
(&(samAccountType=805306368)(!title=SOP12)(|...
还请记住,
-searchbase
从特定的OU开始,如果这可能有助于您使用通配符,或者只是更好地确定用户集,减少所需的干扰/过滤。