秒XXXXXXX.XXXXX:XXX(Win32_NetworkLoginProfile)的格式是什么

use*_*352 7 .net c# powershell

查询上的WMi对象

$colItems = Get-WmiObject Win32_NetworkLoginProfile -Namespace "root\CIMV2" 
                  | Where-Object {$_.name -match "Name"} | Select-Object name,PasswordAge
Run Code Online (Sandbox Code Playgroud)

根据MSDN

PasswordAge

数据类型:datetime
访问类型:只读
密码生效的时间长度.此值是从自上次更改密码以来经过的秒数开始计算的.
示例:00001201000230.000000 000

我正进入(状态

00000068235223.000000:000
Run Code Online (Sandbox Code Playgroud)

所以我尝试过这个TimeSpan,但DateTime没有运气.冒号代表如何获得它所代表的数字小时数.


谢谢将WMI类名添加到标题中,以便下一个被文档措辞搞糊涂的可怜的灵魂.


这是有效的

完美的工作$ str ="00000068235223.000000:000"$ ts = [System.Management.ManagementDateTimeConverter] :: ToTimeSpan($ str)

日:68小时:23分钟:52秒:23毫秒:0蜱:59611430000000总时间:68.9947106481481总时数:1655.87305555556总分:99352.3833333333总分:5961143总百分比:5961143000

Mik*_*ray 5

这是DMTF时间间隔格式,在此处记录.基本上它是字符串,它编码表单中的时间跨度ddddddddHHMMSS.mmmmmm:000.请注意,对于时间间隔,结尾始终是:000.

来自文档:

以下示例显示了日期时间间隔的格式.ddddddddHHMMSS.mmmmmm:000
下表列出了日期 - 时间间隔的字段.
字段描述
dddddddd表示天数(00000000到99999999)的八位数字.
HH使用24小时制(00至23)的一天中的两位数小时.
MM小时内两位数分钟(00到59).
SS分钟内的两位数秒(00到59).
mmmmmm秒中的六位数微秒(000000到999999).

我认为文档对于这个领域有些误导,因为它暗示整数是完整的秒数,但事实上它是一个表示天,小时,分钟,秒等的字符串格式.

您应该使用[System.Management.ManagementDateTimeConverter]::ToTimeSpan将此字符串转换为.NET Timespan,但是,无论出于何种原因我实际上收到的数组而不是PasswordAge的字符串,所以我不得不使用它:

$p = gwmi Win32_NetworkLoginProfile
[System.Management.ManagementDateTimeConverter]::ToTimeSpan($p.PasswordAge[1])
Run Code Online (Sandbox Code Playgroud)