I PowerShell är nästan allting objekt. PowerShell bygger på en objektbaserad modell snarare än en textbaserad modell som traditionella kommandoradsverktyg, exempelvis den gamla DOS. När du kör ett kommando i PowerShell returneras ofta objekt istället för en enkel textsträng. Objekten har egenskaper (properties) och metoder (methods) som du kan utforska och använda. Genom att använda Get-Member kan vi utforska och förstå strukturen hos olika objekt i PowerShell, vilket är användbart när du arbetar med cmdlets och skapar egna skript.
Här är några exempel som visar hur du kan använda Get-Member, men först en kort förklaring på ”pipe”.
I PowerShell är ”pipe” (|) ett sätt att skicka resultatet av en operation/kommando till en annan. Det fungerar som en rörledning där data flödar från vänster till höger. Med hjälp av pipen kan du kombinera olika cmdlets och utföra flera operationer i en enda kommando.
- Med en sträng:
- PS C:\>$myString = ”Hello PowerShell!”
- PS C:\>$myString | Get-Member
- Utdata: en lång lista på metoder och en enda egenskap, längd
- PS C:\>$myString | Get-Member -MemberType property
- Utdata: Length
- Med processer:
- PS C:\>Get-Process | Get-Member
- Utdata: en lång lista på processer som är igång i systemet
- PS C:\>Get-Process | Get-Member -MemberType method
- Utdata: en kortare lista över metoder för att hantera processer
- Med applikationer, till exempel Notepad:
- PS C:\>$myProcess = Get-Process -Name ”notepad”
- Utdata: ingenting men PS hämtar information om processen notepad och lagrar i variabeln myProcess.
- PS C:\>$myProcess
- Utdata: visar vad som lagrats i variabeln
- PS C:\>$myProcess | Get-Member
- Utdata: en lång lista över alla metoder och egenskaper
- Med omdirigering resultat:
- PS C:\>Get-Process | Output-File -Path ”c:\PShell\ProcessOnMySystem.txt”
- Utdata: ingenting men PS skapar en lista över alla processer som är igång i systemet och lagrar i ett textdokument i stället att vis på skärmen. Nästa vill man se innehållet (content).
- PS C:\>Get-Command -Verb Get -Noun content
- PS C:\>Get-Content ”c:\PShell\ProcessOnMySystem.txt”
- Utdata: flera kolumner av information om processerna
- Samma som i exempel 4, men med cmdlet Select-Object
- PS C:\>$myFile = Get-Item -Path ”c:\PShell\ProcessOnMySystem.txt”
- Utdata: ingenting men PS hämtar information om filen och lagrar den i variabeln myFile
- PS C:\>$myFile | Select-Object -Property Name, Length | Get-Member
- Utdata: visar metoder och egenskaper av filen i en tabell med tre kolumner.