Как выводить данные через Powershell Format-List


13 июля 2019


Powershell fl - вывод значений с новой строчки

Powershell FL это алиас с Format-List. Все значения выводятся с новой строчки. Является противоположным значением Format-Table, который описывался здесь. Различия хорошо видны на картинке:

Powershell FL vs Powershell FT

Какие-то команды выводят результат сразу в виде Format-List, какие-то в Format-Table. Если мы хотим вывести сразу все данные с команды, т.к. они выводятся не все, то можно сделать так:

Get-NetIPAddress | fl -Property *

 

Форматирование вывода через Powershell fl

Если нам нужны конкретные свойства объектов (результатов вывода команд), а не все, мы можем вывести только их. Для этого нам нужно получить все свойства. На примере командлета Get-NetIPAddress:

Get-NetIPAddress | Get-Member

Свойства Powershell Get-NetIpAddress

Все имена с типом Property - это свойства которые мы можем вывести. Для примера выведем только IP адреса:

Get-NetIPAddress | fl -Property IPAddress

GroupBy в powershell группирует вывод по определенному полю. В моем случае ipv4 и ipv6 адреса будут разделены:

Get-NetIPAddress | Format-List -GroupBy AddressFamily

GroupBY Powershell

Если нужно отсортировать вывод, то это делается отдельным командлетом:

Get-NetIPAddress | Sort-Object | Format-List -GroupBy AddressFamily

 

Добавление строк через Powershell fl

Мы можем добавить новую строку если в этом есть необходимость:

Get-Service | fl -Property Name, @{Label = "Отключенн"; Expression={$_.Status -eq "Disabled" }}

добавление строки powershell fl

Или на примере процессов. Я перевел вывод из байт в Мб и сгруппировал что бы увидеть копии процессов:

Get-Process | Format-List Name,@{Label = "Физ.память(МБ)"; Expression = {($_.ws / 1024kb)}} -GroupBy Name

 

Фильтрация через Powershell fl

Через командлеты форматирования отфильтровать результат мы не можем, но возможно использовать в связке с where. На моем примере я отфильтровал все правила файервола и выбрал только разрешающие. Отсортировал для того что бы потом можно было нормально сгруппировать по направлению правила (Внутрь или снаружу).

Get-NetFirewallRule | Where-Object -Property Action -EQ "Allow" |
Sort-Object -Property Direction  | Format-List -Property Name -GroupBy Direction

 

...

Теги: #powershell


Каналы
Telegram FixMyPc Telegram Лента FixMyPC RSS Rss
Популярные тэги
О блоге
Этот блог представляет собой конспекты выученного материала, приобретённого опыта и лучшие практики в системном администрировании и программировании.