Bilaga – Svar på granskningsfrågor

Den här bilagan innehåller kortfattade svar på granskningsfrågorna som finns i slutet av varje kapitel. Använd den för att verifiera din förståelse och förstärka viktiga begrepp.

Kapitel 1 – Komma igång med PowerShell

  1. Använd den $PSVersionTable automatiska variabeln.
  2. Endast när du behöver kringgå UAC (User Account Control) för uppgifter som kräver utökade privilegier på den lokala datorn.
  3. Standardkörningsprincipen för Windows klientsystem är Restricted, vilket förhindrar att skript körs.
  4. Använd Get-ExecutionPolicy för att fastställa aktuell körningsprincip.
  5. Använd Set-ExecutionPolicy (till exempel Set-ExecutionPolicy -ExecutionPolicy RemoteSigned).

Kapitel 2 – Hjälpsystemet

  1. Nej. Parametern DisplayName i Get-Service är namngiven, inte positionell.
  2. Get-Process har sex parameteruppsättningar.
  3. Använd Get-Command -Noun EventLog.
  4. Använd Get-Process -Name powershell.
  5. Kör Update-Help (upphöjd som administratör i Windows PowerShell) för att ladda ned och installera det senaste hjälpinnehållet.

Kapitel 3 – Identifiera objekt, egenskaper och metoder

  1. Get-Process skapar ett System.Diagnostics.Process objekt.
  2. Skicka kommandot till Get-Member.
  3. Kontrollera om objektet har en metod som utför åtgärden.
  4. Använd kommandots PassThru parameter, om den har en.
  5. Kör kommandot en gång och lagra resultatet i en variabel för att undvika att upprepade gånger generera stora mängder utdata vid prototyper.

Kapitel 4 – One-Liners och pipelinen

  1. En PowerShell-one-liner är en enda kontinuerlig pipeline, oavsett hur många fysiska linjer den sträcker sig över.
  2. Radbrytningar kan inträffa vid tecken som pipe-tecken (|), kommatecken (,), hakparenteser ([ ]), klammerparenteser ({ }) och parenteser (( )).
  3. Du bör filtrera åt vänster för att förbättra prestanda och effektivitet genom att minska mängden data som skickas via pipelinen.
  4. Ett kommando kan acceptera pipelineindata efter värde (efter typ) eller efter egenskapsnamn.
  5. Eftersom det mesta av innehållet i PowerShell Gallery är community-bidraget och kanske inte granskas, bör det granskas och testas före användning.

Kapitel 5 – Formatering, alias, providers, jämförelse

  1. Eftersom formaterings-cmdletar skapar formatobjekt som bryter pipelinen och inte kan användas av de flesta andra kommandon.
  2. Använd Get-Alias -Name % för att fastställa den faktiska cmdleten.
  3. Eftersom alias minskar läsbarheten och portabiliteten, vilket gör skript svårare för andra att förstå.
  4. Använd Get-ChildItem -Path HKLM:\, HKCU:\ för att lista registernycklar i båda katalogerna.
  5. Operatorn -replace är skiftlägesokänslig som standard, medan .Replace() metoden är skiftlägeskänslig.

Kapitel 6 – Flödeskontroll

  1. ForEach-Object bearbetar objekt en i taget från pipelinen (direktuppspelning), medan -instruktionen foreach bearbetar objekt från en samling som redan har lästs in i minnet.
  2. En while loop utvärderar dess villkor innan det körs, så det kanske inte körs alls om villkoret är falskt, till skillnad från do while och do until, som körs minst en gång.
  3. break avslutar loopen helt och hållet, medan continue hoppar över den aktuella iterationen och fortsätter till nästa.

Kapitel 7 – Arbeta med WMI

  1. WMI-cmdletar (till exempel Get-WmiObject) är äldre och använder DCOM, medan CIM-cmdletar (till exempel Get-CimInstance) är nyare och använder WSMan som standard.
  2. WSMan (Windows Fjärrhantering).
  3. CIM-sessioner tillåter återanvändning av anslutningar, stöder alternativa autentiseringsuppgifter, förbättrar prestanda och förenklar hanteringen av flera fjärranslutningar.
  4. Skapa ett sessionsalternativ med New-CimSessionOption, till exempel för att använda DCOM, och skicka det till New-CimSessionoch använd sedan sessionen med Get-CimInstance.
  5. Använd Remove-CimSession.

Kapitel 8 – PowerShell-fjärrkommunikation

  1. Använd Enable-PSRemoting.
  2. Använd Enter-PSSession.
  3. Det gör att du kan använda en beständig session i stället för att ange datornamnet och autentiseringsuppgifterna med varje kommando.
  4. Ja, du kan använda en PowerShell-session (PSSession) i ett interaktivt fjärrkommunikationsscenario.
  5. Lokalt körda cmdlets returnerar aktiva objekt med metoder, medan fjärrkommandon returnerar deserialiserade objekt utan metoder.

Kapitel 9 – Funktioner

  1. Använd Get-Verb.
  2. [CmdletBinding()] Lägg till attributet i funktionen.
  3. När funktionen gör ändringar i systemtillståndet eller utför potentiellt effektfulla åtgärder.
  4. Ange -ErrorAction Stop.
  5. Om du vill dokumentera hur du använder funktionen så att du och andra enkelt kan förstå den och få åtkomst till hjälpen med Get-Help.

Kapitel 10 – Skriptmoduler

  1. Skapa en .psm1 fil och placera dina funktioner i den.
  2. Med godkända verb säkerställer du konsekvens, undviker varningar och förbättrar identifieringen.
  3. Använd New-ModuleManifest.
  4. Använd Export-ModuleMember i .psm1 filen eller ange funktioner i FunctionsToExport fältet för .psd1 filen.
  5. Modulen måste finnas i en mapp med namnet samma som modulen, som finns i en sökväg som anges i $env:PSModulePathoch innehålla lämplig modulfil (.psm1 eller manifest).

Slutgiltiga anteckningar

  • Dessa svar är avsiktligt koncisa för att förstärka viktiga begrepp.
  • Gå tillbaka till kapitlen för djupare förståelse.