Powershell, En resa för IT-proffs del 2 – PowerShell ISE

blog_powershell_series

Powershell, En resa för IT-proffs del 2 – PowerShell ISE

Del 1 – Introduktion 
Del 2 – Powershell ISE
Del 3 – Objekt
Del 4 – Skapa verktyg
Del två i vår bloggserie om hur man kommer igång med PowerShell, denna del handlar om PowerShell ISE, vilket står för ”Integrated Scripting Environment”.
ISE är ett mer användarvänligt sätt att utveckla och köra PowerShell i Windows. Lättaste sättet att starta ISE är genom att antingen skriva ”ISE” eller ”Powershell” i startmenyn.

ISEStartMenu

Första gången man startar ISE ser det ut ungefär på följande sätt:

ISEMainWindow

  1. ”Script pane” – Det är här man editerar sina scripts.
  2. ”Commands Addon” – Här kan man söka på och exekvera specifika kommandon.
    Här är ett exempel på hur det ser ut
    CommandsZoomed
  3. ”Console Pane” – Här ser man utdata från scripts eller cmdlets man kör. Man kan även köra cmdlets här.

Toolbar
Här är en kortfattad beskrivning över vad alla knappar gör:

  1. New
    Skapa en ny flik.
  2. Open
    Öppna ett script.
  3. Save
    Spara det scriptet du jobbat med.
  4. Cut
    Klipp ut det som är markerat.
  5. Copy
    Kopiera det som är markerat.
  6. Paste
    Klistra in.
  7. Clear Console Screen
    Rensa Console fönstret,
  8. Undo
    Ångrar den senaste ändringen som gjordes.
  9. Redo
    Återställer det som förändrats av ”Undo”.
  10. Run Script
    Kör allt som finns i ”Script Pane”,
  11. Run selection
    Kör bara det som är markearat i ”Script Pane”,
  12. Stop Operation
    Avbryter det som körs,
  13. New Remote PowerShell Tab
    Starta en ny ”fjärr session”, se nedan för mer information,
  14. Start powershell.exe
    Startar en instans av powershell.exe.
  15. Show Script Pane Top
    Visa “Script Pane” högst upp och “Console Pane” under.
  16. Show Script Pane Right
    Visa ”Script Pane” till höger och ”Console Pane” till vänster.
  17. Show Command Window
    Kör kommandot ”Show Command” mot det som är markerat.
  18. Show Command Add-on
    Visar eller döljer “Commands Addon”.

ISE blir framförallt det verktyget man vill använda när man vill skriva fler kommandon på rad, dvs ett helt skript, en modul eller en funktion (mer om vad moduler och funktioner är i en senare blogg).

Här kommer en kortfattad lista på några fördelar med ISE:

  • Kopiera och Klistra in text
    I senare versioner av PowerShell är den här fördelen inte lika påtaglig, men det finns fortfarande lite fördelar, som till exempel att man kan flytta runt text med musen genom att markera texten med musen och sedan dra den dit den ska flyttas.
    Om man håller inne Ctrl samtidigt som man drar texten så kopieras den istället för att flyttas.
  • ”Syntax Highlighting”
    Kommandon med olika betydelser får olika färg i ISE, vilket gör att det blir lättare att se att man har skrivit rätt.
    SyntaxHighlighting
  • ”Teman”
    Det är möjligt att konfigurera färger på all typ av syntax highlighting enligt ovan (det går såklart alltid bättre att utveckla skript när man har egna färger, vilket är varför alla övriga bilder kan se annorlunda ut J). För att ändra färgerna, navigera till Tools > Options > Colors and Fonts
    ColorSettings
    Detta kanske dock inte är helt logiskt än, ett bra tips kan i så fall vara att googla på ett ”powershell ise theme”
  • Bättre hjälp
    Om man markerar ett kommando i ”script pane” eller har skrivit ett kommando i ”console pane” och trycker på F1 får man upp ett nytt fönster med hjälptexten för det kommandot
    Help
    Om man istället trycker Ctrl+F1 får man upp ”Show-Command” istället
    ShowCommand
  • Flikar
    ISE har stöd för flera flikar (man kan öppna en ny flik med Ctrl-N och stänga befintlig flik med Ctrl-W).
    Tabs
  • Zoom
    Om behovet finns går det att zooma antingen längst ner i högra hörnet eller genom att trycka Ctrl++ för att göra texten större och ctrl+- för att göra texten mindre.
    Zoom
  • Fjärransluten flik
    Det går att öppna en fjärransluten PowerShell flik till en annan dator genom att klicka på ”new remote powershell tab” knappen
    PSRemoteButton
    Man får då upp en ruta där man fyller i vilken server man vill ansluta mot och som vilken användare
    PSRemoteConnect
    När man sedan är ansluten fungerar det precis som vanligt, fast det man skriver exekveras på fjärrsystemet.
  • Intellisense
    Intellisense är en funktion som hjälper till med grafiska hjälpmedel. Till exempel när man skriver ”Get-H” presenterar intellisense en meny med alla cmdlets soms börjar på ”Get-H”.
    IntelliSense
    Detta fungerar även för sökvägar.
    IntelliSenseFileSystem
    Och variabler (mer om variabler senare)
    IntelliSenseVariables
    Utöver detta så fungerar det även för ”Properties”, ”Methods”, ”Types” och ”Namespaces” men detta är inget vi behöver gå in djupare på just nu.
  • Snippets
    För att spara tid så kan man använda sig av något som kallas för Snippets.
    Genom att trycka Ctrl-J när man står i script fönstret får man upp en lista på färdiga kodsnuttar man lätt kan återanvända.
    Snippets
    Det går även att skriva egna kodsnuttar med hjälp av New-IseSnippet kommandot.
  • Auto-Save
    Var annan minut sparas alla script som är öppna i ISEn (utan att skriva över orginalversionen), även om man inte har sparat det man arbetar på någon gång.
    Om ISEn sedan crashar kommer man få tillbaka det man arbetade på nästa gång man öppnar ISEn.
    För att öka eller minska intervallet för när det sparas automatiskt kan man köra följande kommando: ”$psise.Options.AutoSaveMinuteInterval = 14” där 14 är antalet minuter man vill att det ska gå mellan sparandet.
  • Expandera och minimera kodområden
    När man skriver vissa typer av kodsnuttar (som till exempel kommentarsblock, foreach-satser, if-satser etc. Detta kommer också tas upp i mer detalj i ett senare avsnitt). Lägger ISEn till ett ”-” framför texten.
    Collapse
    Om man klickar på ”-” kommer allt inom det området att minimeras
    Expand
    För att expandera området igen klickar man på ”+” istället.
  • ”Brace Matching”
    När man skriver lite mer avancerade funktioner som innehåller parenteser, ”måsvingar”({ }) eller ”hakparenteser” ([ ]) visar ISE grafiskt vilka två stycken som hör ihop. När man markerar en öppnande eller stängande ”måsvinge” markeras den matchande öppnande eller stängande måsvingen.
    BraceMatching
  • Vertikal markering
    Genom att hålla inne Alt och dra med musen, eller hålla inne alt+shift och trycka på ”pil upp” eller ”pil ner”kan man editera flera rader samtidigt.
    VerticalMarkBefore
    När man sedan skriver eller tar bort text kommer det förändras på alla rader.
    VerticalMarkAfter
  • Debugging
    ISEn har också flertalet möjligheter att debugga och felsöka scripts, men det är tillräckligt stort att vi tar upp det separat i en egen blogg.

 

Utöver allt ovan som ISEn är bra på så finns det en begränsning.

Det går inte att köra alla gamla kommandobaserade applikationerna interaktivt, som till exempel wmic, netsh och några till.

För att se en lista på vilka icke supporterade program detta är kan man köra följande kommando ”$psUnsupportedConsoleApplications

UnsupportedApps

I nästa post kommer vi att börja gå igenom en av PowerShells stora styrkor, vilket är hur man jobbar med objekt och varför det är något postivt!

För er som missat del 1 av bloggserien finns den här: Powershell en resa för it-proffs

Jonas Lagerström
Infrastructure developer at Addlevel and an expert in automation.jonas.lagerstrom@addlevel.se

Post Comment