如何检查用户是否在Powershell中的OU中

问题描述

我想知道特定用户是否是特定OU的成员。

解决方法

使用ActiveDirectory RSAT模块中的-SearchBase参数和Get-ADUser cmdlet,将查询范围缩小到特定的子树:

$ADUser = Get-ADUser -Filter "SamAccountName -eq 'lmontoya'" -SearchBase "OU=TargetOU,DC=domain,DC=tld"

请注意,默认情况下它将默认为递归子树搜索,因此,如果需要测试用户在该OU下是否直接存在 (而不是仅在OU下)。还需要指定一个-SearchScope

$ADUser = Get-ADUser -Filter "SamAccountName -eq 'lmontoya'" -SearchBase "OU=TargetOU,DC=tld" -SearchScope OneLevel

如果找不到符合指定条件的用户,则$ADUser将为空

SearchBase / SearchScope参数与模块中的所有查询cmdlet一起使用,因此您可以对计算机或OU或在特定容器中需要查找的任何其他方法使用相同的方法:

# Query all the computer account objects residing at "OU=TargetOU,DC=tld"
Get-ADComputer -Filter * -SearchBase "OU=TargetOU,DC=tld" -SearchScope OneLevel