Используя WMI из PowerShell или C # - как я могу получить время удаленного хоста, включая миллисекунды? - PullRequest
0 голосов
/ 17 декабря 2018

Мне нужно получить дату и время удаленного хоста, включая миллисекунды, с помощью WMI.

Следующее не достаточно хорошо:

Get-WmiObject Win32_UTCTime -ComputerName MY_REMOTE_HOST

Поскольку миллисекунды НЕ реализованы в классе Win32_CurrentTimeкоторый получается из класса Win32_UTCTime:

Миллисекунды

Тип данных: uint32

Тип доступа: только для чтения

Не реализовано.

Это свойство унаследовано от Win32_CurrentTime.

(https://docs.microsoft.com/en-us/previous-versions/windows/desktop/wmitimepprov/win32-currenttime)

Буду признателен за любые другие предложения по получению этой информации с помощью WMI из Powershell или C #.

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

WMI-класс win32_operatingsystem содержит свойство с именем LocalDateTime, которое также содержит миллисекунды.Однако вам необходимо преобразовать их.

Простой пример:

$OS = Get-WmiObject win32_operatingSystem
$OS.ConvertToDateTime($OS.LocalDateTime)

Выходные данные - это объект DateTime, который также содержит миллисекунды.

0 голосов
/ 17 декабря 2018

@ bluuf - это тот ответ, который вам следует использовать, но в качестве более сложной альтернативы вы можете получить текущую дату / время из классов WMI счетчика производительности, например:

$perfTime = Get-CimInstance -Query "Select * FROM Win32_PerfRawData_PerfOS_Processor WHERE Name = '0'"
(Get-Date "01/01/1601").AddTicks($perfTimeime.Timestamp_Sys100NS)
0 голосов
/ 17 декабря 2018

Попробуйте удаленное взаимодействие PowerShell:

$sess = New-PSSession -Credential (Get-Credential)
$dateTime = Invoke-Command -Session $sess -ScriptBlock { Get-Date -Format "o" }

Чтобы включить удаленное взаимодействие, см. Эту ссылку .

Надеюсь, что это поможет.

...