我正在努力从 Active Directory 中获取非活动用户列表,Search-ADAccount
然后通过管道将其传输到,Get-ADUser
以便我可以使用 whereMemberOf
不包含该组"Accounts_to_Keep"
。我相信我可以使用正确的数字 ( 379
) 和完整的 DN 字符串。但是,如果组移动,我想使用-match
或-like
仅使用组的名称。它返回的数字不一样。
如果我单独对单个用户执行此操作,MemberOf
它只会过滤掉一个组并返回用户拥有的另一个组,所以我认为这就是为什么我拥有的不仅仅是-contains
. 有没有办法在不自己使用子数组的情况下使用-like
或-match
用于子数组foreach
?
从字符串中删除完整的 DN
PS> $InactiveAll.Count
488
PS> ($InactiveAll | Where {-not $_.memberof.contains("CN=Accounts_to_Keep,OU=DC")}).Count
379
PS> ($InactiveAll | Where { $_.memberof -notlike "*Accounts_To_keep*"}).Count
427
PS> ($InactiveAll | Where {-not $_.memberof -contains ("CN=Accounts_to_Keep,OU=DC")}).Count
61
PS> ($InactiveAll | Where {-not ($_.memberof -contains ("CN=Accounts_to_Keep,OU=DC"))}).Count
379
PS> ($InactiveAll | Where { $_.memberof -notmatch "Accounts_To_Keep"}).Count
427