PowerShell Basics: Format-Table, ft formatowanie wyjścia Cmdlet z przykładami

Windows PowerShell Scripting – Format-Table (FT)

Format-Table, w skrócie FT, kontroluje formatowanie wyjścia poleceń Windows PowerShell. Gdy ważna jest prezentacja informacji, należy wpisać dane wyjściowe skryptu do Format-Table. Na tej stronie pokażę przykłady użycia tego prostego, ale jakże ważnego polecenia.

Tematy dotyczące Format-Table w Windows PowerShell

  • Format-Table – proste przykłady
  • Format-Table – przykłady pośrednie
  • Format-Table z Get-WmiObject
  • Format-Table Alias FT
  • Format-Wide
  • PowerShell Format-List

Format-Table – Proste przykłady

Scenariusz: chcemy zbadać procesy uruchomione na stacji roboczej lub na serwerze Windows.

Wymagania wstępne:
PowerShell i .Net framework są zainstalowane na komputerze.
Przycisk PS> Lub jeśli masz PowerShell 2.0, uruchom ISE.

Przykład 1a
Zacznijmy od przykładu z użyciem domyślnego formatowania:

# Preliminary example, no Format-Table yetGet-Process

„Problem” polega na tym, że nazwa procesu jest po prawej stronie, a na wyjściu mamy kolumny, które nas nie interesują.

Przykład 1b
Pozwól, że wprowadzę teraz Format-Table, abyśmy mogli kontrolować, które właściwości mają być wyświetlane na wyjściu. Załóżmy, że interesują nas tylko 'Handles'.

# Example of PowerShell Format-TableGet-Process | Format-Table ProcessName, Handles -auto

Uwaga 1: Dzięki Format-Table, mamy teraz nazwę procesu w pierwszej kolumnie.

Uwaga 2: -auto zapobiega rozciągnięciu wyjścia na całą szerokość, a co za tym idzie, parametr -auto sprawia, że liczby są łatwiejsze do odczytania. Aby zobaczyć efekt, spróbuj wykonać powyższe polecenie bez -auto.

Guy Poleca: Network Performance Monitor (FREE TRIAL)

SolarWinds Network Performance Monitor (NPM) pomoże Ci odkryć co dzieje się w Twojej sieci. Narzędzie to poprowadzi Cię również przez rozwiązywanie problemów; tablica rozdzielcza wskaże, czy przyczyną jest uszkodzone łącze, wadliwy sprzęt czy przeciążenie zasobów.

To, co podoba mi się najbardziej, to sposób, w jaki NPM sugeruje rozwiązania problemów z siecią. Posiada również możliwość monitorowania kondycji poszczególnych maszyn wirtualnych VMware. Jeśli jesteś zainteresowany rozwiązywaniem problemów i tworzeniem map sieci, to polecam wypróbowanie NPM na 30-dniowym darmowym okresie próbnym.

SolarWinds Network Performance Monitor Download 30-day FREE Trial

Troubleshooting Format-Table

Główną rzeczą, która idzie źle z Format-Table jest zapominanie o rurze (|) przed poleceniem. Moją techniką jest uruchomienie głównego polecenia, a następnie użycie (|) do wysłania wyjścia do Format-Table. Stamtąd możemy wypisać nazwy właściwości, które chcemy wyświetlić.

Drugim problemem z tym cmdletem jest zapominanie o przecinku pomiędzy właściwościami; ale pamiętaj, że nie ma przecinka po Format-Table i przed pierwszą właściwością.

Get-Process | Format-Table ProcessName, Handles ID -autoGet-Process | Format-Table ProcessName, Handles, ID -auto

Format-Table – Przykłady pośrednie

Przykład 2a:
Czas zbadać jakie inne właściwości Get-Process są dostępne, wtedy możemy dostroić nasze polecenie Format-Table.

# Example of PowerShell Format-Table for propertiesGet-Process | Get-Member -Membertype property

Przykład 2b: Nawet tutaj nie mogę się oprzeć użyciu Format-Table do filtrowania, która kolumna zostanie wyeksportowana do pliku.

$Proc = Get-Process | Get-Member -Membertype property$Proc | Format-Table Name | Out-File procprop1.txt

Uwaga 3: Wprowadzenie zmiennej $Proc nie jest tak naprawdę konieczne, jednak jedną z zalet tej techniki jest to, że oszczędza problemów z zawijaniem słów naszego skryptu do następnej linii.

Przykład 3a: W wyniku tych badań możemy wybrać kilka różnych kolumn na wyjściu, na przykład BasePriority i HandleCount:

# Przykład PowerShell Format-Table dla wielu elementów
Get-Process | Format-Table Name, HandleCount, BasePriority

Przykład 3b: Zobaczmy, co się stanie, gdy dodamy -auto.

# Example of PowerShell Format output for multiple itemsGet-Process | Format-Table Name, HandleCount, BasePriority -auto

Guy Recommends: SolarWinds Engineer’s Toolset (FREE TRIAL)

Ten zestaw narzędzi inżynierskich zapewnia wszechstronną konsolę 50 narzędzi do rozwiązywania problemów z komputerem. Guy mówi, że pomaga mi monitorować to, co dzieje się w sieci, a każde narzędzie uczy mnie więcej o tym, jak działa podstawowy system.

Jest tak wiele dobrych gadżetów; to jak posiadanie wolnej ręki w sklepie ze słodyczami. Na szczęście narzędzia są wyświetlane w logiczny sposób: monitorowanie, odkrywanie sieci, diagnostyka i narzędzia Cisco. Wypróbuj zestaw narzędzi SolarWinds Engineer’s Toolset na 14-dniowym bezpłatnym okresie próbnym już teraz!

SolarWinds Engineer’s Toolset Download 14-day FREE Trial

Format-Table with Get-WmiObject

Format-Table przydaje się, gdy mamy do czynienia z klasami Get-WmiObject. Ponieważ dane wyjściowe zawierają więcej niż 5 właściwości, a domyślny układ jest uprzejmy Format-List; wolę wybrać moje właściwości i użyć Format-Table.

Przykład 4: Get-WmiObject

# Example of Get-WmiObject with default outputGet-WmiObject -Class Win32_NetworkAdapter

Zauważmy (powyżej), że domyślnym formatem zalecanym dla Get-WmiObject jest Format-List. Możemy jednak przekierować wyjście do Format-Table (zobacz poniżej)

Clear-Host# Example of Get-WmiObject with Format-Table outputGet-WmiObject -Class Win32_NetworkAdapter |Format-Table DeviceId, Name, MACAddress -AutoSize

Parametry Format-Table PowerShella

Widzieliśmy już parametr Format-Table -auto, teraz zbadajmy więcej przełączników:

# Extra parameters for PowerShell to Format outputClear-hostGet-Help Format-Table -full

Uwaga 4: Jednym z moich ulubionych parametrów Format-Table jest -GroupBy

Przykład 5: -GroupBy
Format-Table posiada parametr o nazwie -GroupBy, który oferuje metodę agregacji danych.

Uwaga 5: Out-GridView: PowerShell v 2.0 wprowadza nowy cmdlet do kontroli wyświetlania danych. Zobacz więcej jak przekierować wyniki do Out-GridView.

Przykład 6: Sort-object (Może być skracany do 'Sort')
Inną techniką na uzyskanie porządku na wyjściu jest zastosowanie Sort-object.

$Proc = Get-Process | Sort-Object -descending BasePriority$Proc | Format-Table Name, HandleCount, BasePriority -auto

Alias Format-Table FT

W Microsofcie, zawsze są co najmniej trzy sposoby robienia wszystkiego, co wydaje się być nadmiarowością, gdy jesteś ekspertem, wydaje się być perspektywą, gdy jesteś początkujący. Jednym z oczywistych przykładów jest to, że można skrócić Format-Table do FT. W miarę zwiększania zakresu poleceń PowerShell, zwróć uwagę na inne aliasy PowerShell, na przykład gwmi dla Get-WmiObject i gci (Get-Childitem).

Oto alternatywne metody osiągnięcia powyższych celów, każdy przykład jest zaprojektowany tak, aby rozwinąć twoje widzenie lornetkowe, a więc widzieć cel wyraźniej. Na przykład, jeśli poeksperymentujesz z format-wide i format-List, rozszerzysz swój zakres opcji formatowania.

Guy Recommends: SolarWinds Admin Bundle for Active Directory (FREE TOOL)

Importuj użytkowników z arkusza kalkulacyjnego. Wystarczy podać listę użytkowników z ich polami w górnym wierszu i zapisać jako plik .csv. Następnie uruchom to DARMOWE narzędzie i dopasuj swoje pola do atrybutów AD, kliknij i zaimportuj użytkowników.

Opcjonalnie możesz podać nazwę OU, w którym powstaną nowe konta. Pobierz swoje DARMOWE narzędzie do masowego importu.

SolarWinds Admin Bundle Pobierz 100% FREE Tool Bundle

Jeśli potrzebujesz bardziej kompleksowego oprogramowania do analizy aplikacji, Pobierz darmową wersję próbną SAM (Server & Application Monitor)

PowerShell FT Alias Examples

Przykład 7a:

# Example of PowerShell Format output with FTGet-Process | FT ProcessName, Handles, PagedMemorySize -auto

Punkty nauczania. Możesz zastąpić FT dla Format-Table. Możesz również badać inne właściwości, na przykład PagedMemorySize.

Przykład 7b:

Clear-hostGet-Process | Get-Member -Membertype method | FT name

Punkty nauczania. Oprócz właściwości, możesz badać metody obiektu. Na przykład, w innych skryptach możesz chcieć wykorzystać metodę .kill().

Przykład 7c:

Get-Process | FT Name, HandleCount -groupby BasePriority -auto

Punkty nauczania. Używanie zmiennych nie jest konieczne. Jest to prostszy przykład skupiający się na przełączniku -groupby.

Format-Wide Cmdlet

Jak odkryć więcej formatujących Cmdletów

Clear-HostGet-Command -verb format

Oprócz Format-Table, możesz wyświetlać dane nie w jednej kolumnie, ale w dwóch lub trzech kolumnach. Jest to opcja format-wide lub (fw), która jest przydatna, gdy mamy długą listę z tylko jednym polem, na przykład:

Get-Process | Get-Member -Membertype method | Format-Wide name -column 3.

Format-List

Innym sposobem, w jaki PowerShell może formatować dane wyjściowe jest lista. Jest to przydatne, gdy chcesz wyświetlić wiele właściwości dla jednego obiektu. Oto przykład:

#Example of PowerShell Format-ListGet-Process services | Format-List -property *

Uwaga 6: To, co sprawia, że warto korzystać z Format-List, to symbol wieloznaczny * (gwiazdka).

Zobacz więcej na temat Format-List”

Technika tworzenia skryptów (cmdletów)

Jeśli chodzi o naszą technikę pracy z Format-Table, doszliśmy do rozdroża. Moją preferowaną metodą pracy jest tworzenie skryptów, a następnie uruchamianie ich z linii poleceń PowerShell. Inną alternatywą jest ciągłe wpisywanie i ponowne wpisywanie poleceń w powłoce. Moja technika sprawdza się, gdy komendy są złożone; jako bonus, moje skrypty dokumentują to, co robię, więc łatwo jest odnieść się i udoskonalić poprzednie eksperymenty.

Jeśli i tobie podoba się ta metoda skryptu (cmdlet), to najpierw upewnij się, że PowerShell pozwoli na uruchomienie skryptu, musisz to zrobić tylko raz, wpisz :
Set-ExecutionPolicy RemoteSigned

Zakładając, że zapisałem przykład 2 w pliku o nazwie proc.ps1, to co robię, to przechodzę do znaku zachęty PS i wpisuję .proc. Musisz albo zapisać skrypt do katalogu roboczego, albo użyć cd, aby przejść do katalogu, w którym skrypt został zapisany.

Podsumowanie Format-Table w Windows PowerShell

Prezentacja naprawdę przekształca dane wyjściowe skryptów PowerShell. Również, gdy otrzymujesz zbyt wiele informacji, odpowiedzią jest filtrowanie i zmniejszenie liczby kolumn w wyświetlaniu. Innym razem trzeba wyświetlić dodatkowe właściwości, które nie są pokazywane przez domyślne polecenie. W każdym przypadku Format-Table daje kontrolę nad prezentacją danych wyjściowych.

Pomimo że Format-Table (lub w skrócie FT), jest wszechobecnym poleceniem, posiada wiele przełączników. Dzięki rozsądnemu stosowaniu tych przełączników można tworzyć kreatywne i efektywne pliki wyjściowe.

Zobacz więcej poradników Microsoft PowerShell dotyczących danych wyjściowych:

– PShell Home – Out-File – Out-GridView – ConvertTo-Csv – ConvertTo-Html – ConvertFrom-Csv

– Tee-Object – Import-CSV – Format-Table – PowerShell Here-String – ConvertFrom-JSON

– Export-CliXml – Format-List – Read-Host – PowerShell Get-History – -f format – Pipe to file

Proszę o maila jeśli ma Pan lepszy przykładowy skrypt. Proszę również o zgłaszanie wszelkich błędów merytorycznych, gramatycznych oraz niedziałających linków, z chęcią je poprawię.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *