我正在尝试创建一个Web API,它将powershell命令的输出转换为JSON。 有谁知道可以做到这一点或将PSObject转换为JSON的库? PSObject属性根据生成它的命令而改变。 我试图将PSObject传递给“ConvertTo-Json”,但我得到了额外的对象信息。在PS中将PSObject(或PS命令)转换为JSON#
PS命令:Get-Process |选择 - 属性句柄,ProcessName |的ConvertTo JSON的
JsonConvert.SerializeObject后的输出():
"{\"CliXml\":\"<Objs Version=\\\"1.1.0.1\\\" xmlns=\\\"http://schemas.microsoft.com/powershell/2004/04\\\">\\r\\n <Obj RefId=\\\"0\\\">\\r\\n<TN RefId=\\\"0\\\">\\r\\n <T>System.String</T>\\r\\n <T>System.Object</T>\\r\\n </TN>\\r\\n <ToString>[_x000D__x000A_ {_x000D__x000A_\\\"Handles\\\":163,_x000D__x000A_\\\"ProcessName\\\":\\\"AppleMobileDeviceService\\\"_x000D__x000A_},_x000D__x000A_ {_x000D__x000A_\\\"Handles\\\": 972,_x000D__x000A_\\\"ProcessName\\\":\\\"CcmExec\\\"_x000D__x000A_},_x000D__x000A_{_x000D__x000A_\\\"Handles\\\": 1838,_x000D__x000A_\\\"ProcessName\\\":\\\"ccSvcHst\\\"_x000D__x000A_}"
PS命令的BeginInvoke。 PS命令:Get-Process |选择-Property把手,ProcessName JsonConvert.SerializeObject(PSObj)后的输出:
"[{\"CliXml\":\"<Objs Version=\\\"1.1.0.1\\\" xmlns=\\\"http://schemas.microsoft.com/powershell/2004/04\\\">\\r\\n <Obj RefId=\\\"0\\\">\\r\\n <TN RefId=\\\"0\\\">\\r\\n <T>Selected.System.Diagnostics.Process</T>\\r\\n <T>System.Management.Automation.PSCustomObject</T>\\r\\n <T>System.Object</T>\\r\\n </TN>\\r\\n <ToString>@{Handles=163; ProcessName=AppleMobileDeviceService}</ToString>\\r\\n <Obj RefId=\\\"1\\\">\\r\\n <TNRef RefId=\\\"0\\\" />\\r\\n <MS>\\r\\n <I32 N=\\\"Handles\\\">163</I32>\\r\\n <S N=\\\"ProcessName\\\">AppleMobileDeviceService</S></Objs>\"}}]
'ConvertTo-JSON'听起来就像你在做什么后...什么是额外的属性?如果你想删除属性,你可以使用select-object在转换为json之前指定你刚才的属性。 – JohnLBevan
这并没有工作更新与数据的职位。 – RDs