PDA

Показать полную графическую версию : [решено] Вывод заданных свойств процесса


kelevara
07-05-2013, 00:18
Доброго дня!
Возникла такая проблема: необходимо вывести в текстовый файл список процессов, запущенных в данный момент, причем должны быть выведены следующие свойства: Имя процесса, Id , PriorityClass, UserprocessorTime, TotalProcessorTime. Дополнительное условие - отсортировать результат по TotalProcessorTime и Id > 100.

Я составил следующий командлет:

get-process | where-object {$_.id -gt 100} | ft processname, id, priorityclass, userprocessortime, totalprocessortime | sort-object -property @{Expression="totalprocessortime"} > process.txt

Но при запуске выдается ошибка:
out-lineoutput : Объект типа "Microsoft.PowerShell.Commands.Internal.Format.FormatEntr
yData" недопустим или находится в неправильной последовательности. Наиболее вероятная
причина – указанная пользователем команда "format-*", конфликтующая с форматированием
по умолчанию.
+ CategoryInfo : InvalidData: (:) [out-lineoutput], InvalidOperationExce
ption
+ FullyQualifiedErrorId : ConsoleLineOutputOutOfSequencePacket,Microsoft.PowerShe
ll.Commands.OutLineOutputCommand

Похоже что я что-то напутал в секции ft... Но, с другой стороны, по отдельности все вроде работает

Iska
07-05-2013, 07:16
Поменяйте местами Format-Table и Sort-Object. Хэш-таблицу в Sort-Object использовать в данном случае необязательно.

kelevara
07-05-2013, 10:17
Iska, не знаю, в чем было дело, но вчера мне это не помогло =) Сегодня же все ОК =)) Спасибо за помощь!

kelevara
08-05-2013, 14:16
Iska, очень странно. Данная команда работает через раз - иногда проходит все замечательно, а иногда выдает следующую ошибку:

Sort-Object : Исключение при чтении "TotalProcessorTime" : "Отказано в доступе"
строка:1 знак:57
+ get-process | where-object {$_.id -gt 100} | sort-object <<<< -property @{Expression="totalprocessortime"} | ft processname, id, priorityclass, userprocessortime, total
processortime > process.txt
+ CategoryInfo : InvalidResult: (System.Diagnostics.Process (audiodg):PSObject) [Sort-Object], GetValueInvocationException
+ FullyQualifiedErrorId : ExpressionEvaluation,Microsoft.PowerShell.Commands.SortObjectCommand

С чем это может быть связано?

Kazun
08-05-2013, 16:23
"Отказано в доступе" - Для получения свойства TotalProcessorTime у всех процессов - выполните команду под учетной записью с правами администратора.

kelevara
08-05-2013, 16:31
Kazun, т.е. запуск powershell ise от имени администратора не подходит?

Kazun
08-05-2013, 16:31
Подходит.

kelevara
08-05-2013, 16:42
Kazun, гмм, не подходит. Вернее он все равно выдает старую ошибку, но при этом файл формирует правильный =). Так что будем считать, что все ок )




© OSzone.net 2001-2012