Преобразование в и из временных меток Windows и Unix с помощью PowerShell

В этой статье описаны функции только что модуля ConvertTime PowerShell, который позволяет конвертировать в объект PowerShell DateTime и обратно, а также временные метки Unix и Windows.

Временные метки Windows

Временная метка Windows - это 18-значное целое число, часто называемое временной меткой Active Directory, а исторически - Windows32 FILETIME или SYSTEMTIME. В PowerShell она также упоминается как FileTime. В Active Directory это значение используется для таких атрибутов, как pwdLastSet, accountExpires, LastLogon, LastLogonTimestamp и LastPwdSet. 18-значная временная метка - это количество 100-наносекундных интервалов (одна миллиардная доля секунды) с 1 января 1601 года UTC (эпоха Windows).

пример 132947402891099830

Временные метки Unix

Временная метка Unix - это количество секунд, прошедших с 1 января 1970 года (полночь UTC/GMT - эпоха Unix), не считая високосных секунд (в ISO 8601: 1970-01-01T00:00:00Z). Часто эти значения встречаются в API для lastUpdatedTime или подобных.

пример 1592001868

Модуль ConvertTime

Модуль был протестирован в Windows PowerShell (5.1) и PowerShell (7.x) на Windows.

Модуль содержит четыре команды (две с дополнительными переключателями для возврата результата преобразования в виде времени UTC):

  • Convert-UnixTime
  • Convert-WindowsTime
  • Get-UnixTime
  • Get-WindowsTime

Установка модуля

Установка непосредственно из галереи PowerShell (Powershell 5.x и выше).

Запустите PowerShell с правами администратора и введите следующую команду

Установка модуля ConvertTime

Примеры использования

Перед началом использования, разрешаем текущему пользователю импортмодулей

и импортируем модуль

Convert-UnixTime

Преобразование временной метки Unix в объект PowerShell DateTime относительно местного времени, основанного на системном часовом поясе.

(необязательно) Возвращает DateTime как всемирное координированное время.

Преобразование временных меток Unix с помощью PowerShell в PSObject DateTime

Convert-WindowsTime

Преобразование из WindowsTime в PowerShell DateTime.

(необязательно) Возвращает DateTime как всемирное координированное время

 Преобразование временных меток Windows с помощью PowerShell в DateTime PSObject

Get-UnixTime

Преобразование времени даты PowerShell в метку времени Unix (Эпоху Linux)

Преобразование даты-времени объекта PowerShell в метку времени Unix

Get-WindowsTime

Преобразование даты-времени PowerShell в метку времени Windows

 

Преобразование даты-времени объекта PowerShell в метку времени Windows

Заключение

ConvertTime это универсальный модуль PowerShell для генерации или преобразования временных меток Unix и Windows в объекты PowerShell DateTime и обратно.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий