我想列出整个公司中不同OU中的人员列表,但是必须省去一些OU。我尝试使用下面显示的代码来做到这一点,但它只是继续显示除管理员之外的所有人
我尝试检查这些子句是否有效,如果我只是单独尝试它们,暂时将其他子句排除在外。在这种情况下,也只剩下管理员,其他子句根本不起作用
我更改了一些数据保护措施。
$AdminOU = "OU=Admins,OU=Users,OU=Location,DC=company,DC=local"
$EXOU = "OU=Ex-workers,OU=Users,OU=Location,DC=company,DC=local"
$InactiveOU = "OU=deactivated,OU=aprenticeship,OU=Users,OU=Location,DC=company,DC=local"
$UsersWithDN = Get-ADUser -searchBase "$OUPath" -Filter * |
Where-Object {($_.distinguishedName -notlike "CN=*,$AdminOU") -and
($_.distinguishedName -notlike "CN=*,InactiveOU") -and
($_.distinguishedName -notlike "CN=*,EXOU")} |
Select-Object Samaccountname,distinguishedName
没有错误弹出,我希望得到列出管理员,前工作人员和已停用帐户的列表。但是,我只得到管理员不在的列表。
答案 0 :(得分:2)
是因为匹配条件不包含$,所以变量引用不正确吗?首先
-notlike "CN=*,$AdminOU"
是正确的,但是其他两个在匹配条件中没有$
,即-notlike "CN=*,InactiveOU"
和-notlike "CN=*,EXOU"
。
您是否尝试过将其更改为"CN=*,$InactiveOU"
和"CN=*,$EXOU"
?那应该有帮助。