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

[玩转系统] Get-AdUser PwdLastSet - 获取 Aduser 最后一次密码更改

作者:精品下载站 日期:2024-12-14 22:03:49 浏览:13 分类:玩电脑

Get-AdUser PwdLastSet - 获取 Aduser 最后一次密码更改


PwdLastSet 属性存储有关上次密码更改的信息。在 Active Directory 中,您可以使用名为 PwdLastSet 的属性检查 Active Directory 中用户帐户的最后一次密码更改。

Get-AdUser PwdLastSet 属性存储上次更改用户密码时的日期时间。如果Get-AdUser PwdLastSet的值为0,则该用户从未登录过系统。 PwdLastSet 属性以大整数格式存储用户密码上次更改的日期时间值,并且不可读。

[玩转系统] Get-AdUser PwdLastSet - 获取 Aduser 最后一次密码更改

在本文中,我将解释如何使用 Get-AdUser PwdLastSet 属性获取从未登录过的用户列表或获取 aduser 最后密码列表以使用 PowerShell 更改日期时间。

Get-AdUser PwdLastSet 获取用户密码 DateTime

如果您想获取 Active Directory 用户上次设置密码日期时间戳,请运行以下命令

Get-ADUser -Identity Toms -properties PwdLastSet,PasswordLastSet  | sort Name | ft Name,PwdLastSet,PasswordLastSet

在上面的 PowerShell 脚本中,Get-AdUser cmdlet 获取 samaccountname 指定的 Active Directory 用户对象,选择用户对象的属性 PwdLastSetPasswordLastSet 并将输出传递给第二个命令。

第二个命令选择Name并在控制台上打印Name、PwdLastSet和PasswordLastSet,如下所示

Name              PwdLastSet PasswordLastSet
----              ---------- ---------------
Tom Smith 132721241372821181 7/30/2021 1:08:57 PM

如上面的输出所示,Get-AdUser PwdLastSet 日期格式是一个大整数。 PasswordLastSet 属性包含日期时间格式的 PwdLastSet 属性的计算值。

我们可以使用 get-aduser pwdlastset 转换为日期 格式的表达式,如下所示

@{Name='PwdLastSet';Expression={[DateTime]::FromFileTime($_.PwdLastSet)}}

将 pwdlastset 属性值从数字格式转换为日期时间格式的最终 PowerShell 脚本,如下所示

Get-ADUser -Identity Toms -properties PwdLastSet,PasswordLastSet  | sort Name | ft Name,@{Name='PwdLastSet';Expression={[DateTime]::FromFileTime($_.PwdLastSet)}},PasswordLastSet

pwdlastset 转换为日期时间戳格式后上述命令的输出如下

Name      PwdLastSet           PasswordLastSet
----      ----------           ---------------
Tom Smith 7/30/2021 1:08:57 PM 7/30/2021 1:08:57 PM

在上面的输出中,它使用 PasswordLastSet 属性获取 aduser 最后一次密码更改日期。

提示:如果您想要向广告用户查询密码上次更改的日期时间(由于其日期时间格式),请使用 Get-ADUser PasswordLastSet 属性。

酷提示:如何在 PowerShell 中查找广告用户密码到期日期!

使用 PowerShell 将 pwdlastset 转换为日期

Active Directory 用户的 pwdlastset 属性存储最后一次密码更改。此时间戳是自 UTC 1601 年 1 月 1 日以来 100 纳秒间隔的数量。

pwdlastset 属性以 System.Int64 数据类型格式存储时间戳。

要使用 PowerShell 将 pwdlastset 转换为 DateTime,请使用以下步骤

  • 使用 DateTime 类并使用范围解析运算符 :: 调用其 FromFileTime 方法
  • FromFileTime 方法将 Active Directory 用户 pwdlastset 属性作为输入参数。
  • Expression 将 [DateTime]::FromFileTime($_.PwdLastSet) 计算为人类可读的格式,并将 pwdlastset 转换为 PowerShell 中的日期。

pwdlastset 转换为日期示例如下:

Get-ADUser -Identity Toms -properties PwdLastSet,PasswordLastSet  | sort Name | ft Name,@{Name='PwdLastSet';Expression={[DateTime]::FromFileTime($_.PwdLastSet)}},PasswordLastSet

上述在 PowerShell 中的输出将 pwdlastset 转换为人类可读格式的 DateTime,其中 pwdlastset 值为 132975302840000000:

Name      PwdLastSet           PasswordLastSet
----      ----------           ---------------
Tom Smith 5/20/2022 2:24:44 PM 5/22/2022 2:24:44 PM

酷提示:如何在 PowerShell 中下次登录时让 aduser 更改密码!

Get-AdUser PwdLastSet - 从特定 OU 获取用户

如果您想使用 Get-AdUser PwdLastSet 过滤器参数获取特定 OU 中上次更改的广告用户密码列表,如下所示

Get-ADUser -SearchBase "OU=SALES,DC=SHELLPRO,DC=LOCAL" -Filter * -Properties Name,PwdLastSet,PasswordLastSet |  sort Name | ft Name,@{Name='PwdLastSet';Expression={[DateTime]::FromFileTime($_.PwdLastSet)}},PasswordLastSet

在上面的 PowerShell 脚本中,Get-AdUser cmdlet 使用 SearchBase 参数从特定 OU 获取 aduser 列表,并将输出传递给第二个命令。

第二个命令按名称对用户列表进行排序,并在控制台上打印 Name、PwdLastSet 和 PasswordLastSet 属性,如下所示

Name       PwdLastSet           PasswordLastSet
----       ----------           ---------------
Chris Dore 8/1/2021 3:36:53 PM  8/1/2021 3:36:53 PM
Tom Smith  7/30/2021 1:08:57 PM 7/30/2021 1:08:57 PM
Dev                    0

在上面的输出中,

前两条记录以日期格式显示 PwdLastSet,因为我们已使用表达式将大整数转换为日期时间格式。

但是,aduser Dev 的最后一条记录的 PwdLastSet 值为 0,这意味着该用户从未登录过,因此 PwdLastSet 值为 0。

它还显示广告用户上次更改密码的日期。

结论

我希望上述有关 Get-AdUser PwdLastSet 属性的文章可以帮助您了解上次更改 DateTime 用户密码的时间。

PwdLastSet 属性包含 System.Int64 整数值,需要转换为 DateTime 以便人类可读的格式。了解更多信息,以在 PowerShell 中将广告用户导出到 CSV 文件。

PasswordLastSet 属性显示 Active Directory 用户上次更改密码的日期。

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

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

取消回复欢迎 发表评论:

关灯