Powershell, En resa för IT-proffs del 3

Powershell, En resa för IT-proffs del 3

ulfvin

Del 1 – Introduktion 
Del 2 – Powershell ISE
En stor del att ta in när man börjar med PowerShell är att allt som man får ut av att skriva i kommandotolken är ett objekt, hm… objekt säger vi, är det programmering på gång?! Nja, inte riktigt.
Vad är då ett objekt, man kan ju säga att det är en ”sak”. Som i tidigare fall så frågade vi efter en disk via att köra kommandot Get-Disk, vilket gör att vi får tillbaka en ”Disk”. Denna har i sin tur flera egenskaper, som t.ex. ett serienummer, storlek etc. Allt man skriver i PowerShell återkommer till dig som just ett objekt, vilket är en av PowerShell stora styrkor. Man får tillbaka ”saker” som man lätt kan göra andra saker med eller titta på deras olika egenskaper.

Ett väldigt effektivt sätt att testa sig fram med objekt (som i fallet med en disk), är att spara kommandot direkt till ett värde som man kan ha i datorns minne (variabel). Detta gör man enkelt via att man skriver ett ”$” tecken följt av namnet man vill kalla värdet. Testa själv via att skriva in $disk = Get-Disk , sedan markera hela raden och klicka på dokumentikonen med gröna pilen.
När man nu skriver $disk på raden under, ser man att man kan välja flera av dess egenskaper som visas i en lång lista, leta reda på egenskapen ”Size” och välj denna.

pwb01

När man väljer egenskapen ”Size” så får man se hur stor disken är i bytes, testa detta via att markera texten med$disk.size och kör det via att klicka på ikonen med ett dokument med en grön pil på. I den blå/vita kommandorutan undertill kommer resultatet att visas, enligt bilden nedan:

pwb02

Baserat på att du har objektet ”Disk” i minnet, kan du själv använda kommandot Write-Host och skriva ut de egenskaperna på disken som du själv vill ska synas, som i exemplet nedan, tryck på ”play” ikonen för att testa.

pwb03

En stor styrka med objekt och PowerShell är att man kan skicka dessa mellan kommandon, det gör man via att använda ett speciellt tecken som kallas för pipe “|”.

I nästa exempel nedan skicka vi objektet ”disk” över till kommandot Get-Partition (vilket gör att vi får partitioner som objekt), som vi i sin tur skickar vidare till Get-Volume. Väl där (när vi får volym objekt) ställer vi en fråga på objektet via att använda ”Where-Object” och titta på dess egenskap DriveLetter som ska vara lika med enhetsbokstaven ”C” för volymen, sedan sparar vi det till minnet, vilket är $OSDrive. Notera att vi här förutsätter en standard installerad Windows klient, vilket troligen har operativsystem på just volym C.

När detta är klart, kan vi skriva ut OS volymens egenskaper som det vi gjorde även tidigare för disk. Notera att vi lagt till att skriva ut det nya objektets egenskaper med färgen gult, det gör vi genom att lägga till –ForegroundColor Yellow

pwb04

Hoppas detta gav en första uppenbarelse för hur objekt fungerar i PowerShell. Byt gärna ut vilka egenskaper du vill testa med att presentera, samt testa att filtrera på andra egenskaper och ändra färgen på texten som presenter egenskaperna.

I nästa post kommer vi börja samla upp exempel i ett skript som gör att vi kan få mer återanvändning av det vi skapar och på sikt få fram ett verktyg användbart för vardagen.

Post Comment