Конвертируем время Unix при помощи PowerShell

Некоторые значения в реестре не очень удобны для дальнейшего использования:

$key = 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion'
Get-ItemProperty $key | 
  Select-Object -ExpandProperty InstallDate

В результате InstallDate вернет значение в секундах отсчитываемых 1.01.1970 так называемый Unix формат. Небольшая функция поможет преобразовать его к удобном виду.

function ConvertFrom-UnixTime {
  param(
      [Parameter(Mandatory=$true, ValueFromPipeline=$true)]
    [Int32]
    $UnixTime
  )
  begin {
    $startdate = Get-Date –Date '01/01/1970' 
  }
  process {
    $timespan = New-Timespan -Seconds $UnixTime
    $startdate + $timespan
  }
}

Теперь может считывать правильную дату.

$key = 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion'
Get-ItemProperty $key | 
  Select-Object -ExpandProperty InstallDate |
  ConvertFrom-UnixTime

Так можно прочитать время с установки Windows.

$key = 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion'
Get-ItemProperty $key | 
  Select-Object -ExpandProperty InstallDate |
  ConvertFrom-UnixTime |
  New-TimeSpan |
  Select-Object -ExpandProperty Days

Есть еще один вариант

[int](((get-date -u %s)-(Get-ItemProperty 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion' | Select-Object -ExpandProperty InstallDate))/86400)
Теги:

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Комментариев пока что нет

Оставить комментарий

(required)

(required)