Powershell – 在OU中查询非标准组成员?

我正在创build一个脚本,它只会显示一个OU中的用户是“非标准”组的成员。

例如,“Accounting”OU中的所有用户都将是其名称中至less有一个“Accounting”的组的成员。 例如:“XYZ-Accounting-Global”。 这是我们的标准组命名。 只有“会计”组成员身份的用户可以跳过。

我只想定位OU中的那些用户,这些用户是该OU的任何非标准组的成员。

  • 示例:用户在“会计”OU中,是“XYZ-Accounting-Global”的成员,但也是“XYZ-Payroll-Global”的成员。

到目前为止,我已经想出了这个:

$domain = "DC=company,DC=com" $dept = read-host "What is the DEPT. name?" Get-ADuser -SearchBase "OU=$dept,OU=Users,OU=company,$domain" -Filter * -properties memberof | Where-Object {!($_.memberof -like "*$dept*")} 

这虽然不能正常工作。 它似乎是返回那些不是一个组的成员的用户,其中有$dept名字。 不幸的是,我不知道如何解决这个问题。

任何帮助表示赞赏。 谢谢。

它似乎是返回那些不是一个组的成员的用户,其中有$ dept的名字

这当然是因为! 你在Where-Objectfilter中使用,这意味着not

尝试删除感叹号:

 Where-Object {($_.memberof -like "*$dept*")} 

编辑

关于你的评论,你可以尝试:

 Where-Object {($_.memberof -notlike "*$dept*")}