Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
powershell在使用ConvertTo Json时将日期属性转换为字符串_Powershell_Hyper V - Fatal编程技术网

powershell在使用ConvertTo Json时将日期属性转换为字符串

powershell在使用ConvertTo Json时将日期属性转换为字符串,powershell,hyper-v,Powershell,Hyper V,我希望从cmdlet获取所有Hyper-V VM信息,如下所示: getvm | selectobject*|转换为Json 其中每个VM字典中的CreationTime看起来像输出中的\/Date(-116444473600000)\/“, 如何使输出json中的格式类似于2017/11/29 16:09:00 当我猜它是历元时间戳的数字时,我发现它有时是负数 我找到了一些关于这个问题的文章,举个例子,但是在我的例子中,Get VM中有一个属性,我不确定是否有一种更快的方法来转换日期属性,而

我希望从cmdlet获取所有Hyper-V VM信息,如下所示:

getvm | selectobject*|转换为Json

其中每个VM字典中的
CreationTime
看起来像输出中的
\/Date(-116444473600000)\/“,

如何使输出json中的格式类似于2017/11/29 16:09:00

当我猜它是历元时间戳的数字时,我发现它有时是负数


我找到了一些关于这个问题的文章,举个例子,但是在我的例子中,
Get VM
中有一个属性,我不确定是否有一种更快的方法来转换日期属性,而不需要长脚本来解析输出。

要根据用户定义的表达式选择属性,可以用以下方式定义它们:

Get-VM | Select-Object -Property @{Name="ReadableCreationTime"; Expression={Get-Date $_.CreationTime}}, *
这将选择用户定义的属性
ReadableCreationTime
和所有其他属性(
*

现在,您要排除原始的
CreationTime
,因为它是a)难以读取的,b)对
ReadableCreationTime
是多余的。这可以使用以下参数完成:

Get-VM | Select-Object -Property @{Name="ReadableCreationTime"; Expression={Get-Date $_.CreationTime}}, * -ExcludeProperty CreationTime
…并将结果传输到
converttojson


请记住,在读取生成的json时,您必须解析日期,因为它只是一个字符串,不是有效的日期值。

如何
get vm | select*,@{Name=“ReadableCreationTime”;表达式={get date$\uuu.CreationTime}-ExcludeProperty CreationTime | ConvertTo Json
对不起,我本不想否决投票,但事情发生了。你的回答帮助了我。谢谢,我再次道歉