通过powershell获取不同OU中ActiveDirectory中的所有用户

通过powershell获取不同OU中ActiveDirectory中的所有用户,powershell,Powershell,我知道如何为一个OU使用Get ADUser,但如何为多个OU扩展它 import-module activedirectory $Path = 'OU=usertest,dc=a,dc=b,dc=com' $NumberOfUsersinAD = (Get-ADUser -SearchBase $Path –filter * ).count $ADUsers = Get-ADUser -Searchbase $Path -Filter * 单个查询只能有一个SearchBase,但如果愿

我知道如何为一个OU使用Get ADUser,但如何为多个OU扩展它

import-module activedirectory
$Path = 'OU=usertest,dc=a,dc=b,dc=com'
$NumberOfUsersinAD =  (Get-ADUser -SearchBase $Path –filter * ).count 
$ADUsers = Get-ADUser -Searchbase $Path -Filter *

单个查询只能有一个
SearchBase
,但如果愿意,可以发出多个查询:

$Domain      = 'dc=a,dc=b,dc=com'
# Create array of OU paths
$OUsToSearch = @(
  "OU=usertest1,$Domain",
  "OU=usertest2,$Domain",
  "OU=Deeply,OU=Nested,OU=usertest1,$Domain"
)

# Create empty array 
$ADUsers = @()

# Loop through OUs and search for users
foreach($Path in $OUsToSearch){
    $ADUsers += Get-ADUser -SearchBase $Path -Filter *
}

# Count users (no need for a separate query)
$NumberOfADUsers = $ADUsers.Count

谢谢这太棒了。只有两个问题:你能解释一下$ADUsers=@()的作用吗?如果我们有30个OU,我应该逐个键入它们吗?@frhling1我已经用注释更新了答案。“一个接一个地打”是什么意思?如果要搜索所有OU,只需将域指定为
SearchBase