Interrogazione di un oggetto WMI sulcosa è questo formato per secondi XXXXXXX.XXXXX: XXX (Win32_NetworkLoginProfile)
$colItems = Get-WmiObject Win32_NetworkLoginProfile -Namespace "root\CIMV2"
| Where-Object {$_.name -match "Name"} | Select-Object name,PasswordAge
secondo MSDN
PasswordAge
tipodati: datetime
Tipo di accesso: Sola lettura
Periodo di validità della password. Questo valore è misurato dal numero di secondi trascorsi dall'ultima modifica della password.
Esempio: 00001201000230,000000 000
sto ottenendo
00000068235223.000000:000
Così ho cercato lanciare questo per TimeSpan
e DateTime
senza fortuna. che cosa rappresentano i due punti su come ottenere il numero di ore che rappresenta.
Grazie Aggiunta del nome classe WMI al titolo per la prossima povera anima che viene confusa dal testo della documentazione.
qui è quello che funziona
che ha funzionato perfettamente $ str = "00000068235223,000000: 000" $ ts = [System.Management.ManagementDateTimeConverter] :: ToTimeSpan ($ str)
Giorni: 68 Ore: 23 Minuti: 52 secondi: 23 millisecondi 0 Zecche: 59611430000000 TotalDays: 68,9947106481481 totalhours: 1655.87305555556 totalminutes: 99352.3833333333 totalseconds: 5961143 TotalMilliseconds: 5961143000
possibile duplicato di [Come convertire una stringa datetime lungo per giorni in C#] (http://stackoverflow.com/questions/22352308/how-to-convert-a-long- datetime-string-to-days-in-c-sharp) –
Il formato effettivo di 'PasswordAge' è' "ddddddddHHmmss.ffffff: 000" 'cioè 8 cifre di giorni, quindi 2 cifre di ore, quindi minuti, quindi secondi, quindi frazioni. Dicono usa '[TimeSpan] :: ParseExact ($ stringa," ddddddddHHmmss.ffffff: 000 ", $ null)' ma non riesco a farlo funzionare nella mia PS4/Win7. Molto strano. – Vesper
@Vesper: vedi il mio commento qui sotto. – PaulF