如何在 PowerShell 中使用 Get-ADUser

Jacki

Get-ADUser cmdlet 是管理 Active Directory 时在 PowerShell 中首先使用的 cmdlet 之一。您可以轻松找到一个或多个用户及其属性并将其导出到 CSV 文件。在本文中,您将了解如何在 PowerShell 中使用 Get-ADUser。

开始之前

您必须先安装 Windows PowerShell 的 Active Directory 模块,然后才能继续操作。否则,Get-ADUser cmdlet 将不起作用,并且您将得到一个不被认可PowerShell 中的错误。

Get-ADUser : The term 'Get-ADUser' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Get-ADUser
+ ~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Get-ADUser:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

域控制器

当您在 Windows Server 上安装 Active Directory 域服务 (AD DS) 角色时,默认情况下会包含用于管理 Active Directory 的工具。因此,您不需要在已安装 AD DS 的服务器上使用此命令,因为管理工具附带了该角色。

会员服务器

要在非域控制器的成员服务器上安装 Active Directory 管理工具,必须安装 RSAT-ADDS 工具。

以管理员身份运行 PowerShell 并运行以下命令。

Install-WindowsFeature -Name RSAT-ADDS

Windows客户端

对于 Windows 11 等 Windows 客户端,您必须安装 RSAT 才能远程管理 Active Directory。

以管理员身份运行 PowerShell 并运行以下命令。

Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0

现在系统已经设置好了。让我们使用 Get-ADUser cmdlet。

要获取单个AD用户信息,您必须填写Sam 帐户名

Get-ADUser -Identity "Amanda.Morgan"

获取单个 AD 用户用户主体名称

Get-ADUser -Filter {UserPrincipalName -eq "[email protected]"}

获取所有 AD 用户。

Get-ADUser -Filter *

获取所有 AD 用户及其所有属性。

Get-ADUser -Filter * -Properties *

获取所有 AD 用户并选择特定属性。

Get-ADUser -Filter * | Select-Object Name, UserPrincipalName

获取所有 AD 用户,选择特定属性并按名称排序。

Get-ADUser -Filter * | Select-Object Name, UserPrincipalName | Sort-Object Name

为了计算所有用户的数量,我们将 Measure-Object cmdlet 添加到命令中。

(Get-AdUser -Filter * | Measure-Object).Count

获取所有用户及其主要 SMTP 电子邮件地址。

Get-ADUser -Filter * -Properties EmailAddress | Select-Object Name, EmailAddress

获取具有特定属性的所有 AD 用户。

在此示例中,它将检索所有用户,包括他们的主 SMTP 电子邮件地址和部门。

Get-ADUser -Filter * -Properties EmailAddress, Department | Select-Object Name, EmailAddress, Department

获取所有用户上次登录日期。

Get-ADUser -Filter * -Properties LastLogonDate | Sort-Object -Property LastLogonDate -Descending | Select-Object Name, LastLogonDate

获取过去 90 天内按上次登录日期的所有用户。

$90days = (Get-Date).AddDays(-90)
Get-ADUser -Filter {LastLogonDate -gt $90days} -Properties LastLogonDate | Select-Object Name, UserPrincipalName

将所有用户导出为 CSV 文件到目录中C:温度

参见:在 Win+X 菜单上将命令提示符替换为 PowerShell

Get-ADUser -Filter * -Properties * | Select-Object Name, SamAccountName, EmailAddress, Department | Export-CSV -Path "C:tempAllADUsers.csv" -Encoding utf8 -NoTypeInformation

获取指定OU中的所有用户。

Get-ADUser -Filter * -SearchBase "OU=Users,OU=Company,DC=exoip,DC=local" | Select-Object Name, UserPrincipalName

筛选 OU 中特定部门的所有用户。

Get-ADUser -Filter {Department -eq "Sales"} -SearchBase "OU=Users,OU=Company,DC=exoip,DC=local" -Properties EmailAddress | Select-Object Name, UserPrincipalName

要仅搜索特定组织单位 (OU) 中的用户而不包括子 OU 中的用户,请使用-搜索范围参数与值一级

Get-ADUser -Filter * -SearchBase "OU=Users,OU=Company,DC=exoip,DC=local" -SearchScope OneLevel | Select-Object Name, UserPrincipalName

获取单个用户的管理员。

Get-ADUser -Identity "Amanda.Morgan" -Properties Manager | Select-Object Name, @{Name='Manager';Expression={(Get-ADUser $_.Manager).Name}}

获取所有用户的管理员。

Get-ADUser -Filter * -Properties Manager | Select-Object Name, @{Name='Manager';Expression={(Get-ADUser $_.Manager -ErrorAction SilentlyContinue).Name}}

获取所有启用的 AD 用户。

Get-ADUser -Filter {Enabled -eq $true} | Select-Object Name, UserPrincipalName | Sort-Object Name

获取所有禁用的 AD 用户。

Get-ADUser -Filter {Enabled -eq $false} | Select-Object Name, UserPrincipalName | Sort-Object Name

获取设置了手机号码的AD用户。

Get-ADUser -Filter {MobilePhone -like "*"} -Properties MobilePhone | Select-Object Name, MobilePhone

获取未设置手机号码的AD用户。

Get-ADUser -Filter {MobilePhone -notlike "*"} -Properties MobilePhone | Select-Object Name, MobilePhone

查找名称以以下字符开头的用户阿曼达

Get-ADUser -Filter "Name -like 'Amanda*'"

检索以特定邮件地址结尾的所有用户,并按显示名称对其进行排序。

Get-ADUser -Filter "EmailAddress -like '*@exoip.com'" -Properties EmailAddress | Select-Object Name, EmailAddress | Sort-Object Name

搜索以特定邮件地址结尾的两个域。

Get-ADUser -Filter {(EmailAddress -like '*@exoip.com') -or (EmailAddress -like '*@o365info.com')} -Properties EmailAddress | Select-Object Name, EmailAddress | Sort-Object Name

了解如何在 PowerShell 脚本中添加 Get-ADUser cmdlet 的一个很好的方法是查看 PowerShell 脚本示例:

  • 使用 PowerShell 从 CSV 导入 AD 用户
  • 使用 PowerShell 将 AD 用户导出到 CSV
  • 使用 PowerShell 从 CSV 创建 Active Directory 用户
  • 使用随机密码批量创建 AD 用户
  • 使用 PowerShell 将用户添加到组
  • 使用 PowerShell 将用户添加到多个组
  • 使用 PowerShell 从组中删除用户
  • 使用 PowerShell 将 AD 用户批量移动到另一个 OU
  • 从 Active Directory 导出禁用用户
  • 从 Active Directory 报告中导出非活动用户
  • 通过 PowerShell 列出安全组中的所有用户
  • 使用 PowerShell 更改用户 UPN
  • 使用 PowerShell 获取 Active Directory 计数

结论

您学习了如何在 PowerShell 中使用 Get-ADUser。这是一个很棒的 cmdlet,您可以使用它来检索和筛选 Active Directory 环境中的用户。之后,您可以使用所需的属性创建出色的 AD 用户报告。

您喜欢这篇文章吗?您可能还喜欢使用 PowerShell 从 Active Directory 导出 BitLocker 恢复密钥。不要忘记关注我们并分享这篇文章。