将LastLogon转换为DateTime格式

我的目标是从我的域中获取用户列表,其中包含以下信息:

  • 显示名称-Country -Manager名称 - 最后登录日期

我正在运行以下脚本,除了LastLogon之外,一切看起来都很好 . 它将时间输入一堆随机数,如“129948127853609000” . 如何将其转换为DateTime格式?

Search-ADAccount -UsersOnly -SearchBase "OU=International,DC=mycompany,DC=com" -AccountDisabled:$false | Get-ADUser -Properties Name, manager, LastLogon | Select Name, manager, LastLogon | export-csv C:\Australia.csv -NoTypeInformation

回答(4)

2 years ago

DateTime.FromFileTime 应该做的诀窍:

PS C:\> [datetime]::FromFileTime(129948127853609000)

Monday, October 15, 2012 3:13:05 PM

然后,根据您希望如何格式化它,查看standardcustom datetime格式字符串 .

PS C:\> [datetime]::FromFileTime(129948127853609000).ToString('d MMMM')
15 October
PS C:\> [datetime]::FromFileTime(129948127853609000).ToString('g')
10/15/2012 3:13 PM

如果要将其集成到单行中,请将 select 语句更改为:

... | Select Name, manager, @{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}} | ...

2 years ago

Get-ADUser -Filter {Enabled -eq $true} -Properties Name,Manager,LastLogon | 
Select-Object Name,Manager,@{n='LastLogon';e={[DateTime]::FromFileTime($_.LastLogon)}}

2 years ago

LastLogon是用户最后一次登录到您运行GET-ADUser cmdlet和 is not replicated across the domain 时恰好已经负载 balancer 的域控制器 . 如果您希望最后一个用户登录到域中的任何域控制器,您真的应该使用LastLogonTimestamp .

2 years ago

使用 LastLogonDate 属性,您不必转换日期/时间 . 转换时 lastLogonTimestamp 应等于 LastLogonDate . 这样,您将获得跨域的最后登录日期和时间,而无需转换结果 .