0

我需要使用 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# 获取此信息的任何其他建议,我将不胜感激。

4

3 回答 3

3

WMI 类 win32_operatingsystem 包含一个名为 LocalDateTime 的属性,该属性还包含毫秒。你需要转换它们。

简单示例:

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

输出是一个 DateTime 对象,它还包含毫秒。

于 2018-12-17T15:15:31.143 回答
2

@bluuf 的答案是您应该使用的答案,但作为一种更复杂的替代方法,您可以从性能计数器 WMI 类中获取当前日期/时间,如下所示:

$perfTime = Get-CimInstance -Query "Select * FROM Win32_PerfRawData_PerfOS_Processor WHERE Name = '0'"
(Get-Date "01/01/1601").AddTicks($perfTimeime.Timestamp_Sys100NS)
于 2018-12-17T15:37:31.693 回答
1

尝试 PowerShell 远程处理:

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

要启用远程处理,请参阅此链接

希望有帮助。

于 2018-12-17T14:39:33.520 回答