Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Вывод заданных свойств процесса (http://forum.oszone.net/showthread.php?t=260081)

kelevara 07-05-2013 00:18 2145753

Вывод заданных свойств процесса
 
Доброго дня!
Возникла такая проблема: необходимо вывести в текстовый файл список процессов, запущенных в данный момент, причем должны быть выведены следующие свойства: Имя процесса, 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 2145812

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

kelevara 07-05-2013 10:17 2145865

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

kelevara 08-05-2013 14:16 2146563

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 2146608

"Отказано в доступе" - Для получения свойства TotalProcessorTime у всех процессов - выполните команду под учетной записью с правами администратора.

kelevara 08-05-2013 16:31 2146617

Kazun, т.е. запуск powershell ise от имени администратора не подходит?

Kazun 08-05-2013 16:31 2146620

Подходит.

kelevara 08-05-2013 16:42 2146627

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


Время: 02:51.

Время: 02:51.
© OSzone.net 2001-