我正在寻求创建一个脚本,它只显示 OU 中属于“非标准”组的用户。
例如,“会计”OU 中的所有用户都将是至少一个名称中带有“会计”的组的成员。示例:“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
。不幸的是,我不知道如何解决这个问题。
任何帮助我都感激不尽。谢谢。
答案1
它似乎返回那些不属于 $dept 名称的组成员的用户
这肯定是因为!
您在过滤器中使用了Where-Object
,这意味着not
。
尝试删除感叹号:
Where-Object {($_.memberof -like "*$dept*")}
编辑
关于您的评论,您可以尝试:
Where-Object {($_.memberof -notlike "*$dept*")}