2017-11-29 1 views
0

mit würde Ich mag alle Hyper-V VM Informationen von Get-VM Cmdlets erhalten, wie unten:Power das Datum Eigenschaft auf Zeichenfolge konvertieren, wenn ConvertTo-Json

Get-Vm | Select-Object * | ConvertTo-Json

Wo die CreationTime in jedem VM-Wörterbuch aussieht wie \/Date(-11644473600000)\/", in der Ausgabe

Wie kann ich es aussehen wie dieses Format 2017/11/29 16:09:00 in der Ausgabe json?

Wenn ich denke, es ist die Anzahl der Epochen Zeitstempel, fand ich manchmal eine negative Zahl.

Ich habe einige Artikel zu diesem Thema gefunden, die Get-Date zum Beispiel nehmen, aber in meinem Fall ist es eine Eigenschaft in Get-VM, dass ich nicht sicher bin, ob eine schnellere Möglichkeit, die Eigenschaft Datum ohne langes Skript zu konvertieren, um die Ausgabe zu analysieren.

+1

Wie wäre es mit 'get-vm | Wählen Sie *, @ {Name = "ReadableCreationTime"; Ausdruck = {Get-Date $ _. CreationTime}} -ExcludeProperty CreationTime | ConvertTo-Json' – Clijsters

Antwort

0

eine Eigenschaft wählen, basierend auf einem Ausdruck Benutzer definierte man sich in Select-Object die folgende Art und Weise definieren:

Get-VM | Select-Object -Property @{Name="ReadableCreationTime"; Expression={Get-Date $_.CreationTime}}, * 

Damit wird die Benutzer definierte Eigenschaft ReadableCreationTime und alle andere Eigenschaften (*).

Nun möchten Sie das Original CreationTime ausschließen, da es a) schlecht lesbar und b) redundant zu ReadableCreationTime ist. Dies kann mit dem -ExcludeProperty Parameter erfolgen:

Get-VM | Select-Object -Property @{Name="ReadableCreationTime"; Expression={Get-Date $_.CreationTime}}, * -ExcludeProperty CreationTime 

... Und Rohr das Ergebnis ConvertTo-Json

Beachten Sie, dass in der resultierenden json beim Lesen, müssen Sie das Datum analysieren, weil es nur eine Zeichenfolge, kein gültiger Datumswert.

Verwandte Themen