提取所有OU用户的pwdLastSet属性。

问题描述 投票:0回答:1

我想创建一个所有OU用户的列表,以及他们最后一次修改密码的时间。这是我使用的一个简单的代码。

$OUpath = 'OU=testOU,DC=extranet,DC=domain,DC=com'
$ExportPath = 'D:\TEMP\PassExpired.csv'
Get-ADUser -Filter * -SearchBase $OUpath | Select-object -Property Name,UserPrincipalName,pwdLastSet | Export-Csv -NoType $ExportPath

我不知道为什么前两个属性能正确导出,而后两个属性却没有正确导出 pwdLastSet 抛出一个空列。

我还使用下面这段代码将LargeInteger转换为标准的datetime格式,结果和预期一样。

$PassSet = (Get-ADUser -identity user.name -properties pwdLastSet).pwdLastSet
(Get-Date 1/1/1601).AddDays($PassSet/864000000000)

也许我遗漏了什么?

Artur

powershell active-directory
1个回答
0
投票

Get-ADUser 不会返回所有的属性。你需要通过名称或通配符来指定它们 (get-aduser -filter * -SearchBase $OUpath -Properties *),对于所有在参数 -Properties. 还可以考虑使用 PasswordLastSet 而不是pwdLastSet,因为它返回的是日期时间,不需要转换。

get-aduser -filter * -SearchBase $OUpath -Properties PasswordLastSet | Select-object -Property Name,UserPrincipalName,PasswordLastSet | Export-Csv -NoType $ExportPath

P.S.如果你仍然需要使用pwdLastSet,同样的代价也适用于

get-aduser -filter * -SearchBase $OUpath -Properties pwdLastSet| Select-object -Property Name,UserPrincipalName,pwdLastSet| Export-Csv -NoType $ExportPath
© www.soinside.com 2019 - 2024. All rights reserved.