Get ADUser:通过PowerShell获取Active Directory用户信息
Get-ADUser是基本的PowerShell cmdlet之一,可用于获取有关Active Directory域用户及其属性的信息。我们可以使用Get ADUser查看任何AD用户对象属性的值,显示域中具有必要属性的用户列表并将其导出到CSV,以及使用各种条件和筛选器来选择域用户。
Get-ADUser cmdlet自PowerShell 2.0开始提供,它是特殊模块 用于Windows PowerShell的Active Directory的一部分(在Windows Server 2008 R2中引入)。RSAT AD PowerShell cmdlet允许我们对AD对象执行各种操作。
说明以前,要获取有关AD用户帐户属性的信息,必须使用不同的工具:ADUC控制台(包括保存的AD查询)、vbs脚本、dsquery等。所有这些工具都可以轻松地替换为get-ADUser cmdlet。
在本例中,我们将演示如何使用get-ADUser PowerShell cmdlet获取上次更改用户密码的时间和密码的过期日期的信息。
如何使用Get ADUser查找AD用户并列出属性?
要使用RSAT AD PowerShell模块,我们需要运行提升的PowerShell控制台并使用以下命令导入该模块:
Import-Module activedirectory
部署Active Directory域服务(AD DS)角色时,默认情况下在Windows Server 2012(及更高版本)上安装RSAT AD PowerShell模块。要在域成员服务器上安装模块,请运行以下命令:
[Install-WindowsFeature**(http://theitroad.local/install-remove-windows-server-roles-features-powershell/) -Name "RSAT-AD-PowerShell" –IncludeAllSubFeature
要使用Windows桌面管理工具或者Windows Server版本中的“管理”功能->关闭Windows服务器的“管理”功能->请使用Windows服务器的“管理”功能->关闭Windows服务器版本和AD LDS工具->AD DS工具)。
我们可以从PowerShell在Windows 10 1809及更高版本中安装RSAT AD模块:
Add-WindowsCapability –online –Name "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0"
还有一种方法可以使用AD PowerShell模块,而无需在计算机上安装RSAT。复制主模块文件并将模块导入PoSh会话就足够了:
Import-Module "C:\PS\AD\Microsoft.ActiveDirectory.Management.dll" Import-Module "C:\PS\AD\Microsoft.ActiveDirectory.Management.resources.dll"
Get-ADUser cmdlet的所有参数的完整列表如下所示:
help Get-ADUser
若要使用Get-ADUser cmdlet,不需要在具有域管理员或者委派权限的帐户下运行它。任何授权的AD域用户都可以运行PowerShell命令来获取大多数AD对象属性的值(机密属性除外,请参阅LAPS文章中的示例)。如果需要从其他帐户运行Get ADUser命令,请使用 Credential参数。
要显示所有域帐户的列表,请运行以下命令:
Get-ADUser -filter *
重要。不建议在具有大量帐户的域中运行此命令,因为提供信息的域控制器可能会过载。
要在特定域控制器上执行AD查询,请使用 -Server参数:
Get-ADUser –Server DC01.theitroad.local –Identity tuser
若要更改用户属性,请使用 Set ADUsercmdlet。
默认情况下,Get-ADUser cmdlet只返回10个基本用户属性(超过120个用户帐户属性中的一个):DistinguishedName、SamAccountName、Name、SID、UserPrincipalName、ObjectClass、account status(启用:根据UserAccountControl AD属性为True/False)等,cmdlet的输出不包含有关上次用户密码更改时间的信息。
要显示有关所有可用用户属性的详细信息,请运行以下命令:
Get-ADUser -identity tuser -properties *