2016-04-10 2 views
0

я пытаюсь получить имя процесса и использование памяти процесса с помощью команды PowerShell:JSON выход отличается от вывода таблицы формата

Get-Process | Group-Object -Property ProcessName | 
    Format-Table Name, @{n='Mem (KB)';e={ 
     '{0:N0}' -f (($_.Group|Measure-Object WorkingSet -Sum).Sum/1KB) 
    };a='right'} -AutoSize 

Но когда я конвейер с ConvertTo-Json выхода отличается который получает мне деталь of ClassID, outOfBand, который не является ожидаемым результатом. Я хочу, чтобы результат был точно таким же образом (Name и Mem (KB)), поскольку он отображается на экране, но в формате JSON.

+0

Не труба 'Format-Table' вывод в' ConvertTo-Json' - используйте 'Select-Object' вместо' Формат- Таблица –

+0

@ MathiasR.Jessen Но как мне рассчитать размер памяти? Когда я использую Format-Table, он вычисляет, но используя Select-Object, он не вычисляет память, используемую процессом –

+2

'Select-Object' принимает рассчитанные свойства так же, как' Format-Table'. Покажите код, который не работает, если вы хотите получить квалифицированную помощь :) –

ответ

0

Решение этой проблемы заключается в использовании Select-Object вместо Format-Table

Get-Process | Group-Object -Property ProcessName | 
    Select-Object Name, @{n='Mem'; 
     e={(($_.Group|Measure-Object WorkingSet -Sum).Sum/1KB)}} | 
    ConvertTo-Json 
Смежные вопросы