如何在 PowerShell 中使用 Get-ADUser
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 恢复密钥。不要忘记关注我们并分享这篇文章。
