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

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

作者:精品下载站 日期:2024-12-14 05:59:10 浏览:13 分类:玩电脑

通过 Get-ADUser Powershell Cmdlet 进行用户管理


介绍

PowerShell 中的 Get-ADUser cmdlet 提供了许多参数,用于在 Active Directory (AD) 域中查找一个或多个用户。

默认情况下,PowerShell 使用登录到计算机的帐户运行。如果要使用不同的帐户运行命令,可以在命令之前使用此开关强制 PowerShell 提示您输入凭据:

$cred =Get-Credential

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

搜索特定用户

-身份参数

如果您知道要获取哪个 AD 用户,请使用 -Identity 参数:

Get-ADUser -Identity “identifier”

为标识符指定以下之一:

  • 专有名称 (DN)
  • Sam 帐户名
  • GUID
  • 安全识别码

例子

Get-ADUser -Identity "ABBEY.Crawford"

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

将搜索限制到特定 OU

-SearchBase参数

使用 -SearchBase 参数将搜索限制为特定 OU,由其专有名称 (DN) 指定:

Get-ADUser -Filter "givenname -Like 'Abbey'" -SearchBase "distinguishedName of OU"

例子

Get-ADUser -Filter "givenname -Like 'Abbey'" -SearchBase "OU=Versacorp,DC=milkyway,DC=local"

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

-SearchScope参数

组合 SearchBase 和 SearchScope 参数可将搜索限制为特定 OU 和指定数量的子 OU 级别。例如,要在 OU 及其直接子 OU 中查找用户帐户,请为 SearchScope 指定值 1。要包括子 OU 和孙 OU,请使用值 2。

Get-ADUser -SearchBase " distinguishedName of OU " -SearchScope "2"

例子

Get-ADUser -Filter "givenname -Like 'Abbey'" -SearchBase "OU=Versacorp,DC=milkyway,DC=local" -SearchScope "2"

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

过滤特定用户组

- 过滤参数

如果您不知道任何标识符的确切值,您可以指定要过滤的属性和过滤器的值,如下所示:

Get-ADUser -Filter “filter value”

运营商

OperatorMeaningSample expression-eqEqual toName -like ‘Inga’-neNot equal toCountry -ne ‘US’-gtGreater thanBadLogonCount -gt ‘0’-geGreater than or equalModified -ge ’06-04-2021 12:00:00?-ltLess thanLastLogonTimeStamp -lt ’01-08-2020?-leLess than or equalCreated -le ’01-08-2020?-likeWildcard searchMail -like ‘*@xyz.com’-notlikeWildcard search with negationDepartment -notlike ‘*’-andAndCountry -eq ‘US’ -and Department -eq ‘Operations’-orOrCountry -eq ‘US’ -or -Country -eq ‘UK’

查找具有特定名称的用户

要使用名字或部分名字搜索用户,请使用 -Filter 参数以及 -like 子句和一个值。

以下示例显示了 Filter 参数的使用,其中涉及 AD 属性给定名称。它返回给定名称包含 Abbey 的用户。

Get-ADUser -Filter “givenname -Like ‘Abbey’”

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

查找名称相似的用户

您可以使用通配符修改前面的命令来获取名称以特定字符串开头的所有用户,如下所示:

Get-ADUser -Filter "Name -like 'Abb*'" | Select Name,givenname,surname,samAccountName,distinguishedname | ftG

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

查找所有启用的用户

如果您想查看所有启用的用户,可以使用以下 cmdlet:

Get-ADUser -filter {Enabled -eq "true"} | ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

查找禁用用户

查找禁用用户对于促进 AD 清理非常有价值。使用带有一个过滤器的简单命令,“-Filter “Enabled -eq ‘false’””可能会返回数百个禁用用户,因为一些公司更愿意保留其 Active Directory 对象用于审核目的。使用具有特定 OU 的 -SearchBase 过滤器来限制结果。例如,此 cmdlet 将查找特定 OU 中的所有禁用的用户帐户:

Get-ADUser -Filter “Enabled -eq 'false'” -SearchBase "CN=Users,DC=Knox,DC=lab" -Properties * | Select Name,Enabled |ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

查找拥有电子邮件地址的用户

要查找分配有邮箱的所有用户,请使用以下命令:

Get-ADUser -Filter {mail -ne "null"} -Properties Name,GivenName,mail| ft Name,GivenName,mail

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

查找未设置密码过期的帐户

为了加强安全性,您可能需要查找“passwordneverexpires”属性设置为 true 的所有帐户,如下所示:

Get-ADUser -Filter {passwordneverexpires -eq "true"} | Select Name, sAMAccountName

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

查找过时的用户帐户

有时,我们需要过滤掉一段时间没有使用的用户帐户。以下是查找过去 60 天内未使用的所有用户帐户的方法:

$CutoffDate = (Get-Date).AddDays(-60)
Get-ADUser -Filter "LastLogonDate -lt '$CutoffDate'" -Properties LastLogonDate | Select Name, LastLogonDate

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

查找在特定日期创建的用户

要查看 Active Directory 中特定日期创建的所有用户帐户,可以使用以下命令:

Get-ADUser -Filter {Created -lt '7/30/2021'} | Select Name

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

组合多个过滤器

您可以组合多个过滤器来定义用于查找用户的复杂标准。

实施例1

以下命令将返回销售部门所有已启用的用户:

Get-ADUser -Filter "Enabled -eq 'true' -and Department -like 'Sales'" -Properties * | Select Name, Department |ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

实施例2

以下 cmdlet 将返回部门属性不为 null 并且名称以字母 A 开头的所有用户:

Get-ADUser -filter {Department -ne "null"} | Where-Object Name -like 'A*'

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

控制显示哪些属性

-性能参数

默认情况下,Get-ADUser 命令仅返回少数参数。如果您想要用户属性的扩展列表,请使用以下 cmdlet:

Get-ADUser -Identity “Identifier” -Properties *

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示一组特定的属性

或者,您可以明确列出您想要为用户查看的属性:

Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,Enabled,mail,department,company,title,c,st,streetaddress |ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示组成员资格

要查看用户的成员资格,请使用以下 cmdlet:

Get-ADUser -Identity Abbey.crawford -Properties memberof | Select-Object -ExpandProperty memberof

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示电子邮件地址

如果您想查看特定用户的电子邮件地址,请使用以下 cmdlet:

Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,mail |ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示用户主体名称 (UPN)

要检索用户的 UPN,请使用以下 cmdlet:

Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,userprincipalname |ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示 SAM 帐户名称

要显示用户的 SAM 帐户名,请使用以下 cmdlet:

Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,samAccountName |ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示显示名称

如果您想查看用户的显示名称(例如,因为 ADUC 中的显示名称可能不同),您可以使用以下 cmdlet:

Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,displayname |ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示专有名称

要查看用户的可分辨名称,请使用以下 cmdlet:

Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,distinguishedname |ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示代理地址

如果您想查看用户的代理地址,请使用以下 cmdlet:

Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,proxyaddresses |ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示用户的管理员

要显示用户管理员的 SAM 帐户名,请使用以下命令:

Get-ADUser “User Identifier” -properties * | select  amAccountName, @{Name=’Manager’;Expression={(Get-ADUser($_.manager)).samaccountname}}

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示员工 ID

要查看用户的员工 ID,请使用以下 cmdlet:

Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,employeeid |ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示电话号码

要查找用户的所有电话号码,请使用以下命令:

Get-ADUser -Identity “User Identifier” -Properties * | Select *Phone*

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

要以表格形式显示这些值,请使用以下命令:

Get-ADUser -Identity “User Identifier” -Properties * | Select Name, *Phone* | ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示密码到期日期和时间

要查看帐户的密码到期日期,请使用以下 cmdlet:

Get-ADUser -Identity “User Identifier” -Properties msDS-UserPasswordExpiryTimeComputed | select Name, {[datetime]::FromFileTime($_.”msDS-UserPasswordExpiryTimeComputed”)}

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示帐户创建日期

要查看 AD 中创建用户帐户的时间,请使用以下命令:

Get-ADUser -filter * -Properties Name,whencreated | ft Name,WhenCreated

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示上次登录日期和时间

如果您想查看用户上次登录任何系统的时间,请使用以下 cmdlet:

Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,lastlogondate |ft

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示上次密码更改日期和时间

要查看用户上次更改密码的时间,请使用以下 cmdlet:

Get-ADUser -Identity Abbey.Crawford -properties PwdLastSet,PasswordLastSet  | sort Name | ft Name,PwdLastSet,PasswordLastSet

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

显示扩展属性的值

组织可以使用 AD 扩展属性来存储有关用户的附加信息。例如,O365许可信息可以存储在ExtensionAttribute1中。要查看此信息,请使用以下 cmdlet:

Get-ADUser -Identity “Abbey.Crawford” -Properties * | Select sAMAccountName, extensionAttribute1

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

对输出进行排序

要使用特定属性对 Get-ADUser 命令的输出进行排序,请使用以下命令:

Get-ADUser -Filter * | Select Name | Sort-Object -Property Name

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

将数据导出到 CSV 文件

示例1

以下命令将查找过去 180 天内创建的所有用户帐户,按名称对它们进行排序,并将有关它们的选定信息导出到 CSV 文件:

Get-ADUser -filter * -properties * | Where-Object { $_.created -gt  (get-date).AddDays(-180)} | select-object Name, Created | sort Name | export-csv C:\Accounts.csv -NoTypeInformation

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

示例2

以下命令查找特定 OU 中的所有用户并将有关他们的选定详细信息输出到 CSV 文件:

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

这是 CSV 文件:

[玩转系统] 通过 Get-ADUser Powershell Cmdlet 进行用户管理

结论

Get-ADUser 命令是一种查找一个或多个满足特定条件的用户的通用方法。您可以控制显示哪些用户属性以及信息的排序方式,并将输出导出到 CSV 文件。

如果您对更全面的 Active Directory 和 Azure AD 管理解决方案感兴趣,请查看 Netwrix GroupID。它提供了更先进的管理 shell,也与 PowerShell 完全兼容。

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

取消回复欢迎 发表评论:

关灯