我正在创build一个脚本,它只会显示一个OU中的用户是“非标准”组的成员。
例如,“Accounting”OU中的所有用户都将是其名称中至less有一个“Accounting”的组的成员。 例如:“XYZ-Accounting-Global”。 这是我们的标准组命名。 只有“会计”组成员身份的用户可以跳过。
我只想定位OU中的那些用户,这些用户是该OU的任何非标准组的成员。
到目前为止,我已经想出了这个:
$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*")}