Bijlage - Antwoorden op beoordelingsvragen

Deze bijlage bevat beknopte antwoorden op de beoordelingsvragen aan het einde van elk hoofdstuk. Gebruik deze om uw begrip te valideren en belangrijke concepten te versterken.

Hoofdstuk 1: Aan de slag met PowerShell

  1. Gebruik de $PSVersionTable automatische variabele.
  2. Alleen wanneer u Gebruikersaccountbeheer (UAC) moet omzeilen voor taken die verhoging van bevoegdheden op de lokale computer vereisen.
  3. Het standaarduitvoeringsbeleid op Windows clientsystemen is Restricted, waardoor het uitvoeren van scripts wordt voorkomen.
  4. Gebruik Get-ExecutionPolicy dit om het huidige uitvoeringsbeleid te bepalen.
  5. Gebruik Set-ExecutionPolicy (bijvoorbeeld Set-ExecutionPolicy -ExecutionPolicy RemoteSigned).

Hoofdstuk 2 - Het Help-systeem

  1. Nee. De parameter DisplayName van Get-Service is benoemd, niet positioneel.
  2. Get-Process heeft zes parametersets.
  3. Gebruik Get-Command -Noun EventLog.
  4. Gebruik Get-Process -Name powershell.
  5. Voer Update-Help (verhoogd als beheerder in Windows PowerShell) uit om de meest recente Help-inhoud te downloaden en te installeren.

Hoofdstuk 3: Objecten, eigenschappen en methoden detecteren

  1. Get-Process produceert een System.Diagnostics.Process object.
  2. Pijp de opdracht naar Get-Member.
  3. Controleer of het object een methode heeft waarmee de actie wordt uitgevoerd.
  4. Gebruik de parameter van de opdrachtPassThru als deze er een heeft.
  5. Voer de opdracht eenmaal uit en sla de resultaten op in een variabele om te voorkomen dat er herhaaldelijk grote hoeveelheden uitvoer worden gegenereerd tijdens het maken van prototypen.

Hoofdstuk 4 - One-Liners en de pijplijn

  1. Een PowerShell-one-liner is één doorlopende pijplijn, ongeacht hoeveel fysieke lijnen deze overspant.
  2. Natuurlijke regeleinden kunnen voorkomen bij tekens zoals de pijp (|), komma (,), openende vierkante haken ([ ]), accolades ({ }) en haakjes (( )).
  3. U moet filteren om de prestaties en efficiëntie te verbeteren door de hoeveelheid gegevens die via de pijplijn worden doorgegeven, te verminderen.
  4. Een opdracht kan pijplijninvoer accepteren op waarde (per type) of op eigenschapsnaam.
  5. Omdat de meeste inhoud in de PowerShell Gallery door de community wordt bijgedragen en mogelijk niet wordt gecontroleerd, moet deze worden gecontroleerd en getest voordat u deze gebruikt.

Hoofdstuk 5 - Opmaak, aliassen, providers, vergelijking

  1. Omdat opmaak-cmdlets indelingsobjecten produceren die de pijplijn verbreken en niet kunnen worden gebruikt door de meeste andere opdrachten.
  2. Gebruik Get-Alias -Name % om de juiste cmdlet te bepalen.
  3. Omdat aliassen de leesbaarheid en draagbaarheid verminderen, waardoor scripts moeilijker te begrijpen zijn voor anderen.
  4. Gebruik Get-ChildItem -Path HKLM:\, HKCU:\ dit om registersleutels in beide hives weer te geven.
  5. De -replace operator is standaard niet hoofdlettergevoelig, terwijl de .Replace() methode hoofdlettergevoelig is.

Hoofdstuk 6 - Stroombeheer

  1. ForEach-Object verwerkt items één voor één vanuit de pijplijn (streaming), terwijl de foreach instructie items verwerkt uit een verzameling die al in het geheugen is geladen.
  2. Een while lus evalueert de voorwaarde voordat deze wordt uitgevoerd, zodat deze mogelijk helemaal niet wordt uitgevoerd als de voorwaarde onwaar is, in tegenstelling tot do while en do until, die ten minste één keer worden uitgevoerd.
  3. break sluit de lus volledig af, terwijl continue de huidige iteratie wordt overgeslagen en naar de volgende gaat.

Hoofdstuk 7 - Werken met WMI

  1. WMI-cmdlets (bijvoorbeeld Get-WmiObject) zijn ouder en gebruiken DCOM, terwijl CIM-cmdlets (bijvoorbeeld Get-CimInstance) nieuwer zijn en WSMan standaard gebruiken.
  2. WSMan (Windows Remote Management).
  3. CIM-sessies maken hergebruik van verbindingen mogelijk, ondersteunen alternatieve referenties, verbeteren de prestaties en vereenvoudigen het beheren van meerdere externe verbindingen.
  4. Maak een sessieoptie met New-CimSessionOption, bijvoorbeeld om DCOM te gebruiken, en geef deze door aan New-CimSession. Gebruik vervolgens die sessie met Get-CimInstance.
  5. Gebruik Remove-CimSession.

Hoofdstuk 8 - Externe communicatie van PowerShell

  1. Gebruik Enable-PSRemoting.
  2. Gebruik Enter-PSSession.
  3. Hiermee kunt u een permanente sessie gebruiken in plaats van de computernaam en referenties op te geven met elke opdracht.
  4. Ja, u kunt een PowerShell-sessie (PSSession) gebruiken in een een-op-een interactief externe communicatiescenario.
  5. Cmdlets die lokaal worden uitgevoerd retourneren live objecten met methoden, terwijl opdrachten op afstand gedeserialiseerde objecten zonder methoden retourneren.

Hoofdstuk 9 - Functies

  1. Gebruik Get-Verb.
  2. Voeg het [CmdletBinding()] kenmerk toe aan de functie.
  3. Wanneer de functie wijzigingen aanbrengt in de systeemstatus of mogelijk impactvolle acties uitvoert.
  4. Geef -ErrorAction Stop op.
  5. Documenteer hoe u de functie gebruikt, zodat u en anderen deze gemakkelijk kunnen begrijpen en hulp kunnen krijgen bij Get-Help.

Hoofdstuk 10 - Scriptmodules

  1. Maak een .psm1 bestand en plaats uw functies erin.
  2. Het gebruik van goedgekeurde werkwoorden zorgt voor consistentie, vermijdt waarschuwingen en verbetert de detectie.
  3. Gebruik New-ModuleManifest.
  4. Gebruik Export-ModuleMember het .psm1 bestand of geef functies op in het FunctionsToExport veld van het .psd1 bestand.
  5. De module moet zich in een map bevinden met dezelfde naam als de module, die zich in een pad bevindt dat wordt vermeld en $env:PSModulePathhet juiste modulebestand (.psm1 of manifest) bevat.

Slotnotities

  • Deze antwoorden zijn opzettelijk beknopt om belangrijke concepten te versterken.
  • Ga terug naar de hoofdstukken voor meer inzicht.