Преобразование формата LastLogon в формат DateTime
Моя цель - получить список пользователей из моего домена со следующей информацией:
-Изменить имя
-Страна
-Manager Name
-Наша дата входа в систему
Я запускаю следующий script, и все выглядит хорошо, за исключением 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
Ответы
Ответ 1
DateTime.FromFileTime
должен выполнить трюк:
PS C:\> [datetime]::FromFileTime(129948127853609000)
Monday, October 15, 2012 3:13:05 PM
Затем, в зависимости от того, как вы хотите отформатировать его, проверьте стандарт и пользовательские строки формата даты.
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
Get-ADUser -Filter {Enabled -eq $true} -Properties Name,Manager,LastLogon |
Select-Object Name,Manager,@{n='LastLogon';e={[DateTime]::FromFileTime($_.LastLogon)}}
Ответ 3
LastLogon - это последний раз, когда пользователь вошел в систему, в какой бы контроллер домена вы не балансировал нагрузку, на тот момент, когда вы запускали командлет GET-ADUser, а не реплицируется через домен, Вы действительно должны использовать LastLogonTimestamp, если хотите, чтобы последний пользователь зарегистрировался на любом контроллере домена в вашем домене.
Ответ 4
Используйте свойство LastLogonDate, и вам не нужно будет конвертировать дату/время.
lastLogonTimestamp при преобразовании должен равняться LastLogonDate.
Таким образом, вы получите последнюю дату и время входа в домен, не требуя преобразования результата.
Ответ 5
Get-ADUser -Filter {Включено -eq $ true} -Properties Имя, менеджер, LastLogon | Select-Object Name, Manager, @{n = 'LastLogon'; e = {[DateTime] :: FromFileTime ($ _. LastLogon)}}
Примечание: используя скрипт выше, мы получаем всех пользователей домена LastLog