PowerShell Basics: Format-Table, ft output formatting Cmdlet met voorbeelden

Windows PowerShell Scripting – Format-Table (FT)

Format-Table, of kortweg FT, regelt de opmaak van de uitvoer van uw Windows PowerShell commando’s. Wanneer de presentatie van informatie belangrijk is, kunt u de uitvoer van het script naar Format-Table leiden. Op deze pagina laat ik u voorbeelden zien van dit eenvoudige, maar belangrijke commando.

Windows PowerShell Format-Table Onderwerpen

  • Format-Table – Simple Examples
  • Format-Table – Intermediate examples
  • Format-Table with Get-WmiObject
  • Format-Table Alias FT
  • Format-Wide
  • PowerShell Format-List

Format-Table – Simple Examples

Scenario: we willen processen onderzoeken die draaien op een werkstation of een Windows Server.

Voorvereisten:
PowerShell en .Net framework zijn geïnstalleerd op uw computer.
U bent bij de prompt PS> Of als u PowerShell 2.0 heeft, start de ISE.

Voorbeeld 1a
Laten we beginnen met een voorbeeld dat de standaardopmaak gebruikt:

# Preliminary example, no Format-Table yetGet-Process

Het ‘probleem’ is dat de naam van het proces rechts staat, en dat we kolommen in de uitvoer hebben die niet van belang zijn.

Voorbeeld 1b
Nu zal ik Format-Table introduceren, zodat we kunnen bepalen welke eigenschappen in de uitvoer moeten worden weergegeven. Laten we aannemen dat we alleen geïnteresseerd zijn in ‘Handles’.

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

Note 1: Dankzij Format-Table hebben we nu de naam van het proces in de eerste kolom.

Note 2: -auto voorkomt dat de uitvoer zich over de volle breedte uitspreidt en bijgevolg maakt de parameter -auto de cijfers gemakkelijker leesbaar. Om het effect te zien, probeer het bovenstaande commando zonder -auto.

Guy Recommends: Network Performance Monitor (FREE TRIAL)

SolarWinds Network Performance Monitor (NPM) zal je helpen te ontdekken wat er op je netwerk gebeurt. Dit hulpprogramma begeleidt je ook bij het oplossen van problemen; het dashboard geeft aan of de hoofdoorzaak een verbroken verbinding, defecte apparatuur of overbelasting van bronnen is.

Wat ik het beste vind, is de manier waarop NPM oplossingen voor netwerkproblemen voorstelt. Het heeft ook de mogelijkheid om de gezondheid van individuele VMware virtuele machines te monitoren. Als je geïnteresseerd bent in het oplossen van problemen en het maken van netwerkkaarten, dan raad ik je aan om NPM 30 dagen gratis uit te proberen.

SolarWinds Network Performance Monitor Download 30-day FREE Trial

Troubleshooting Format-Table

Het belangrijkste dat fout gaat met Format-Table is het vergeten van de pipe (|) vóór het commando. Mijn techniek is om het hoofdcommando werkend te krijgen en dan (|) te gebruiken om de uitvoer naar Format-Table te pijpen. Van daaruit kunnen we een lijst maken met de namen van de eigenschappen die we willen weergeven.

Een bijkomend probleem met dit cmdlet is het vergeten van de komma tussen de eigenschappen; maar onthoud, er staat geen komma na Format-Table en voor de 1e eigenschap.

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

Format-Table – Intermediate Examples

Example 2a:
Het is tijd om te onderzoeken welke andere eigenschappen van Get-Process beschikbaar zijn, dan kunnen we ons Format-Table commando fine-tunen.

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

Example 2b: Zelfs hier kan ik het niet laten om Format-Table te gebruiken om te filteren welke kolom naar het bestand wordt geëxporteerd.

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

Note 3: Het is niet echt nodig om de variabele $Proc te introduceren. Een voordeel van deze techniek is echter dat het problemen met ons script word-wrapping naar de volgende regel scheelt.

Voorbeeld 3a: Als resultaat van dit onderzoek kunnen we enkele verschillende kolommen in de uitvoer kiezen, bijvoorbeeld BasePriority en HandleCount:

# Voorbeeld van PowerShell Format-Table voor meerdere items
Get-Process | Format-Table Name, HandleCount, BasePriority

Voorbeeld 3b: Laten we eens kijken wat er gebeurt als we -auto toevoegen.

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

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

Deze Engineer’s Toolset biedt een uitgebreide console met 50 hulpprogramma’s voor het oplossen van computerproblemen. Guy zegt dat het me helpt te monitoren wat er op het netwerk gebeurt, en dat elke tool me meer leert over hoe het onderliggende systeem werkt.

Er zijn zoveel goede gadgets; het is alsof je vrij spel hebt in een snoepwinkel. Gelukkig zijn de hulpprogramma’s logisch ingedeeld: monitoring, network discovery, diagnostic, en Cisco tools. Probeer de SolarWinds Engineer’s Toolset nu 14 dagen gratis uit!

SolarWinds Engineer’s Toolset Download 14 dagen GRATIS Uitproberen

Format-Table met Get-WmiObject

Format-Table komt goed tot zijn recht bij het omgaan met Get-WmiObject classes. Omdat de uitvoer meer dan 5 eigenschappen bevat, en de standaard opmaak van Format-List is; geef ik er de voorkeur aan mijn eigenschappen te selecteren, en Format-Table te gebruiken.

Voorbeeld 4: Get-WmiObject

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

Observeer (hierboven) dat het standaardformaat dat voor Get-WmiObject wordt voorgeschreven Format-List is. We kunnen de uitvoer echter omleiden naar Format-Table (zie hieronder)

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

PowerShell Format-Table Parameters

We hebben de parameter -auto van Format-Table al gezien, laten we nu nog meer schakelaars onderzoeken:

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

Note 4: Een van mijn favoriete Format-Table parameters is -GroupBy

Example 5: -GroupBy
Format-Table heeft een parameter genaamd -GroupBy, die een methode biedt om de gegevens te aggregeren.

Aantekening 5: Out-GridView: PowerShell v 2.0 introduceert een nieuw cmdlet om de weergave van gegevens te regelen. Zie meer over hoe de resultaten in out-GridView te pijpen.

Voorbeeld 6: Sort-object (Kan worden afgekort tot ‘Sort’)
Een andere techniek om orde in de uitvoer te krijgen is het gebruik van Sort-object.

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

Format-Table Alias FT

Met Microsoft zijn er altijd minstens drie manieren om alles te doen, wat redundantie lijkt als je een expert bent, lijkt perspectief als je een beginner bent. Een voor de hand liggend voorbeeld is dat je Format-Table kunt afkorten tot FT. Als je je PowerShell commando’s uitbreidt, houd dan een andere PowerShell Alias in de gaten, bijvoorbeeld gwmi voor Get-WmiObject en gci (Get-Childitem).

Hier zijn alternatieve methoden om de bovenstaande doelen te bereiken, elk voorbeeld is ontworpen om je binoculaire visie te ontwikkelen, dus het doel duidelijker te zien. Bijvoorbeeld, als je experimenteert met format-wide en format-List zul je je scala aan opmaakopties uitbreiden.

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

Importeer gebruikers vanuit een spreadsheet. Geef gewoon een lijst van de gebruikers met hun velden in de bovenste rij, en sla op als .csv bestand. Start vervolgens dit GRATIS hulpprogramma en match de velden met de attributen van AD, klik en importeer de gebruikers.

Als optie kunt u de naam van de OU opgeven waar de nieuwe accounts zullen worden geboren. Download uw GRATIS bulk import tool.

SolarWinds Admin Bundle Download 100% GRATIS Tool Bundle

Als u meer uitgebreide applicatie analyse software nodig heeft, Download dan een gratis trial van SAM (Server & Application Monitor)

PowerShell FT Alias Examples

Example 7a:

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

Leerpunten. Je kunt FT vervangen door Format-Table. Ook kunt u andere properties onderzoeken, bijvoorbeeld PagedMemorySize.

Voorbeeld 7b:

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

Leerpunten. Behalve eigenschappen, kun je ook de methode van een object onderzoeken. In andere scripts kun je bijvoorbeeld de methode .kill() gebruiken.

Voorbeeld 7c:

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

Leerpunten. Het is niet essentieel om variabelen te gebruiken. Dit is een eenvoudiger voorbeeld dat zich richt op de -groupby switch.

Format-Wide Cmdlet

Hoe ontdek je meer Formatting Cmdlets

Clear-HostGet-Command -verb format

In aanvulling op Format-Table kun je gegevens niet in één kolom, maar in twee of drie kolommen weergeven. Dit is de format-wide of (fw) optie, die handig is wanneer je een lange lijst hebt met slechts één veld, bijvoorbeeld:

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

Format-List

De andere manier waarop PowerShell uitvoer kan formatteren is met een lijst. Dit is handig wanneer je meerdere eigenschappen van één object wilt weergeven. Hier is een voorbeeld:

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

Note 6: Wat het gebruik van de format-List de moeite waard maakt, is het jokerteken * (ster).

Zie meer over Format-List”

Script (cmdlet) Techniek

Wat betreft onze werktechniek voor Format-Table, zijn we op een kruispunt beland. Mijn voorkeurswerkwijze is om scripts te maken en die vervolgens vanaf de PowerShell-opdrachtregel uit te voeren. Het andere alternatief is om de commando’s in de commandoregel te blijven typen en opnieuw te typen. Mijn techniek komt het best tot zijn recht als de commando’s complex zijn; als bonus documenteren mijn scripts wat ik doe, zodat het gemakkelijk is om eerdere experimenten te herhalen en te verfijnen.

Als deze script (cmdlet) methode u ook bevalt, zorg er dan eerst voor dat PowerShell het script laat uitvoeren, u hoeft dit maar één keer te doen, type :
Set-ExecutionPolicy RemoteSigned

Aannemend dat ik voorbeeld 2 heb opgeslagen in een bestand met de naam proc.ps1, wat ik doe is naar de PS prompt gaan en .\proc typen. U moet het script opslaan in de werkdirectory, of anders cd gebruiken om naar de directory te gaan waar het script is opgeslagen.

Samenvatting van Format-Table in Windows PowerShell

Presentatie transformeert echt de uitvoer van uw PowerShell-scripts. Als je te veel informatie krijgt, is het antwoord filteren en het aantal kolommen in de weergave verminderen. In andere gevallen moet je extra eigenschappen weergeven, die niet worden getoond door het standaard commando. In elk geval geeft Format-Table je controle over de presentatie van je uitvoer.

Hoewel Format-Table (of kortweg FT) een alomtegenwoordig commando is, heeft het wel een groot aantal schakelaars. Door de vele schakelaars oordeelkundig toe te passen, kunt u creatieve en effectieve uitvoer produceren.

Meer handleidingen over Microsoft PowerShell-uitvoer bekijken:

– 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

Mail me aub als je een beter voorbeeld script hebt. Meld ook eventuele feitelijke fouten, grammaticale fouten of gebroken links, ik zal de fout met plezier herstellen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *