当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 从 OU 获取用户列表

作者:精品下载站 日期:2024-12-14 16:41:21 浏览:11 分类:玩电脑

使用 PowerShell 从 OU 获取用户列表


组织部门中的用户列表 可以使用 Get-AdUser 和 SearchBase 参数来检索,以搜索特定组织单位中的用户 和 PowerShell 中的 Get-AdOrganizationalUnit

Active Directory 中的组织单元包含用户、组、计算机和 AD 对象。 PowerShell 中的 Get-AdUser cmdlet 有助于从活动目录中获取一个或多个广告用户。

在本文中,我们将讨论如何列出 Active Directory 中 OU 的用户。

获取 OU 中的用户列表

使用 PowerShell 中的 Get-AdUser,您可以轻松找到特定 OU 中的用户。

让我们通过一个示例来练习从广告组织部门获取用户列表。

$OU = 'OU=SALES,DC=SHELLPRO,DC=LOCAL'
# Use Get-AdUser to search within organizational unit to get users name
Get-ADUser -Filter * -SearchBase $OU | Select-object DistinguishedName,Name,UserPrincipalName 

在上面的 PowerShell 脚本中查找 OU 中的用户,

PowerShell 中的 $OU 变量包含 OU 名称。

在 PowerShell 中使用 Get-ADUser,它使用 Filter 和 SearchBase 参数来搜索指定 OU 内的用户。

它选择广告用户的专有名称、名称及其用户主体名称。

上述用于获取 OU 中所有用户的 PowerShell 脚本的输出为:

[玩转系统] 使用 PowerShell 从 OU 获取用户列表

酷提示:如何在 Active Directory 中查找 OU 中的计算机!

获取ou及子ou下的所有用户

使用 PowerShell 中的 Get-AdUser cmdlet,您可以获取 ou 和 sub ou 中的所有用户。

它使用 SearchBase 参数在给定的 ou 内进行搜索,并使用 SearchScope 子树参数,获取所有子 ou 用户。

让我们通过例子来练习一下。

 $OU = 'OU=SHELLUSERS,DC=SHELLPRO,DC=LOCAL'
 Get-ADUser -Filter * -SearchBase $OU -SearchScope Subtree | Select-object DistinguishedName,Name,UserPrincipalName

上述用于获取 ou 和 sub ou 中所有用户的 PowerShell 脚本的输出为:

[玩转系统] 使用 PowerShell 从 OU 获取用户列表

从多个组织部门获取 AdUser 列表

使用 Get-AdUser SearchBase 参数,您可以从多个 ou 获取广告用户列表。

# Specify multiple OU 
$OU = 'OU=SALES,DC=SHELLPRO,DC=LOCAL','OU=SHELLUSERS,DC=SHELLPRO,DC=LOCAL'

# Use foreach to iterate over multiple ou to get aduser
$OU | ForEach-Object {Get-AdUser -filter {enabled -eq $true} -searchbase $_ -properties canonicalname,userprincipalname } |  Select SamAccountName,canonicalname,userprincipalname

在上面的命令中,$OU 变量包含多个 OU。

使用 ForEach -Object 迭代 ou 并使用 Get-AdUser SearchBase 参数从多个 ou 获取用户。

上述命令的输出是:

PS C:\> $OU = 'OU=SALES,DC=SHELLPRO,DC=LOCAL','OU=SHELLUSERS,DC=SHELLPRO,DC=LOCAL'

PS C:\> $OU | ForEach-Object {Get-AdUser -filter {enabled -eq $true} -searchbase $_ -properties canonicalname,userprincipalname } |  Select SamAccountName,canonicalname,userprincipalname

SamAccountName canonicalname                              userprincipalname
-------------- -------------                              -----------------
toms           SHELLPRO.LOCAL/SALES/Tom Smith             [email 
chrisd         SHELLPRO.LOCAL/SALES/Chris Dore            [email 
Harsh.Dev      SHELLPRO.LOCAL/SHELLUSERS/HR/Harsh Dev     [email 
Netya.Xu       SHELLPRO.LOCAL/SHELLUSERS/FINANCE/Netya Xu [email 
Dev.NewHouse   SHELLPRO.LOCAL/SHELLUSERS/Dave NewHouse    [email 

将 ou 中的用户列表导出到 csv

在上面的示例中,我们看到您可以从 Active Directory 中的 OU 获取用户列表。

使用 PowerShell 中的 Export-CSV,您可以将 OU 中的广告用户列表导出到指定位置的 CSV 文件。

让我们来练习!

# Get the OU and sub OU list from the active directory by OU name
$OUList = (Get-ADOrganizationalUnit -Filter 'Name -like "SALES"' -SearchScope Subtree) | select DistinguishedName

$OUList | foreach {
$ADUsersList = Get-ADUser -Filter * -SearchBase $_.DistinguishedName | Select-Object Name,DistinguishedName,UserPrincipalName

}
$ADUsersList | Export-CSV C:\PowerShell\OU_adusers.csv -NoTypeInformation

在上面的 PowerShell 脚本中,从 ou 和 sub ou 导出用户列表,

  • $OUList 变量包含由 PowerShell 中的 Get-AdOrganizationalUnit 检索的 OU 和子 ou 名称。它包含 OU 的专有名称。
  • 使用 foeach 循环 迭代 ou 列表
  • 在 PowerShell 中使用 Get-AdUser 使用 SearchBase 参数搜索特定 OU 中的用户。
  • 它返回 ou 中用户的广告用户名、专有名称和用户主体名称。
  • 在 PowerShell 中使用 Export-Csv 将 OU 中的用户列表导出到 csv 文件。

上述 PowerShell 脚本在 CSV 文件中的输出为:

"Name","DistinguishedName","UserPrincipalName"
"Tom Smith","CN=Tom Smith,OU=SALES,DC=SHELLPRO,DC=LOCAL","[email "
"Chris Dore","CN=Chris Dore,OU=SALES,DC=SHELLPRO,DC=LOCAL","[email "

结论

我希望您能找到一篇有关如何使用 PowerShell 中的 Get-AdUser 和 Get-AdOrganizationalUnit cmdlet 从 Active Directory 中的 OU 获取用户列表的文章。

PowerShell 中的 Get-AdUser 从搜索条件中获取一个或多个用户。在上面的脚本中,我们在 SearchBase 参数中指定了 OU 可分辨名称。

您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯