Objekt i PowerShell

I PowerShell är objekt datastrukturer som innehåller information och egenskaper. En stor del av styrkan med PowerShell ligger i dess förmåga att hantera data som objekt istället för enkel text. Cmdlets returnerar ofta resultat i form av objekt med olika egenskaper som du kan använda och manipulera.

Objektegenskaper

När du har ett objekt i PowerShell kan du komma åt dess egenskaper med punktnotation ($objekt.Egenskap) eller genom att använda Select-Object cmdleten för att plocka ut specifika egenskaper. Du kan även filtrera och sortera objekt med hjälp av andra cmdlets som Where-Object och Sort-Object.

Exempel på cmdlets för att hantera objekt:

  • Select-Object: Används för att välja specifika egenskaper från objektet. Hämta processers namn och hur mycket processerna använder processorn.
    • Get-Process | Select-Object Name, CPU
  • Sort-Object: Används för att filtrera objekt baserat på en eller flera villkor. Hämta tjänster status (Stopped och Running) och deras namn.
    • Get-Service | Sort-Object Status, DisplayName
  • Where-Object: Används för att filtrera objekt baserat på en eller flera villkor.
    • Get-Process | Where-Object { $_.CPU -gt 50 }
    • I exemplet ovan används $_ som en förkortning för det aktuella objektet som bearbetas i pipelinen.

Get-Member

I PowerShell hanteras alla objekt med cmdlets i kombination med objektens egenskaper och metoder. Objekt kan inkludera kataloger, filer, registernycklar, cmdlets, certifikat och så vidare. För att utforska vilka egenskaper och metoder dessa objekt har kan du använda kommandot Get-Member.

För att få information om egenskaperna hos cmdleten Get-Command kan du exekvera:

PS C:\>Get-Command | Get-Member

Bilden ovan visar några medlemtyper, notera att den första kolumnen listar objektets namn och i den andra kolumnen (MemberType) specificeras om det är en egenskap eller en metod. Dessa egenskaper och metoder är inte inbyggda i cmdlets utan tillhandahålls av .NET-ramverket.

För att utforska metoderna och egenskaperna hos cmdleten Get-ChildItem kan du exekvera:

PS C:>Get-ChildItem | Get-Member

Observera att Get-ChildItem använder klasserna System.IO.DirectoryInfo och System.IO.FileInfo, som finns tillgängliga i .NET och används för hantering av filer och mappar.

I PowerShell används cmdlets för att interagera med objekt. Cmdlets kan använda objektens egenskaper och metoder för att utföra olika uppgifter och manipulationer. Detta möjliggör kraftfulla operationer i PowerShell, såsom att hantera filer, tjänster, registret och mycket mer.