O Microsoft Office 365 salva informações no registro sobre a hora da última pesquisa/download/aplicação de atualizações em um formato como este:
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\office\ClickToRun\Updates' | select *time
UpdateDetectionLastRunTime : 13335538464958
UpdatesAppliedTime : 13335413795690
DownloadTime : 13335365916104
UpdatesDiscoveryPeriodStartTime : 13259087464032
UpdatesBlockedTime : 0
Qual é esse formato e como ele é convertido em uma data/hora padrão?
O número é o registro de data e hora desde o Windows Epoch Time, que começa em 1º de janeiro de 1601, contando em intervalos de milissegundos.
Na página da Microsoft Como converter atributos de data/hora no Active Directory para o formato de hora padrão
Você pode usar o comando interno do Windows, adicionando 4 zeros ao final de seus valores para obter o código de registro de data e hora "completo" de 18 dígitos.
Como o valor completo de 18 dígitos está usando intervalos de tempo de 100nS desde a época do Windows, removendo 4 dígitos do final, você reduz a precisão para intervalos de milissegundos de intervalos de 100nS. Você provavelmente nunca notará a redução na precisão.
Você pode validar a conversão do número que possui usando conversores on-line, como LDAP, Active Directory e Filetime Timestamp Converter, mas, novamente, você precisará adicionar quatro
0
's ao final da string para obter o valor correto de 18 dígitos.Para adicionar à resposta de @Mokubai , a maneira de fazer isso no PowerShell, que presumo ser o desejado aqui, seria usar
FromFileTime
a função, por exemplo:Isso usa a hora local, também
FromFileTimeUtc
usa a hora UTC.