about_Debuggers

Korte beschrijving

Hierin wordt het Foutopsporingsprogramma van PowerShell beschreven.

Lange beschrijving

Foutopsporing is het proces voor het onderzoeken van een script terwijl het wordt uitgevoerd om fouten in de scriptinstructies te identificeren en te corrigeren. Met het PowerShell-foutopsporingsprogramma kunt u fouten en inefficiënties in uw scripts, functies, opdrachten, DSC-configuraties (PowerShell Desired State Configuration) of expressies onderzoeken en identificeren.

Vanaf PowerShell 5.0 is het Foutopsporingsprogramma voor PowerShell bijgewerkt om fouten op te sporen in scripts, functies, opdrachten, configuraties of expressies die worden uitgevoerd in de console of Windows PowerShell Integrated Scripting Environment (ISE) op externe computers.

Notitie

Windows PowerShell ISE ondersteunt alleen Windows PowerShell. Voor PowerShell 6 en hoger moet u Visual Studio Code gebruiken met de extensie voor PowerShell. Zie Foutopsporing met Visual Studio Code voor meer informatie.

Cmdlets voor foutopsporingsprogramma

Het PowerShell-foutopsporingsprogramma bevat de volgende set cmdlets:

  • Set-PSBreakpoint: Hiermee stelt u onderbrekingspunten in op regels, variabelen en opdrachten.
  • Get-PSBreakpoint: Haalt onderbrekingspunten op in de huidige sessie.
  • Disable-PSBreakpoint: Schakelt onderbrekingspunten in de huidige sessie uit.
  • Enable-PSBreakpoint: Schakelt onderbrekingspunten opnieuw in in de huidige sessie.
  • Remove-PSBreakpoint: Verwijdert onderbrekingspunten uit de huidige sessie.
  • Get-PSCallStack: Geeft de huidige aanroepstack weer.

Het foutopsporingsprogramma starten en stoppen

Als u het foutopsporingsprogramma wilt starten, stelt u een of meer onderbrekingspunten in en voert u vervolgens het script, de opdracht of de functie uit die u wilt opsporen.

Wanneer u een onderbrekingspunt bereikt, stopt de uitvoering en wordt het besturingselement overgezet naar het foutopsporingsprogramma.

Als u het foutopsporingsprogramma wilt stoppen, voert u het script, de opdracht of de functie uit totdat het is voltooid. Of typ stop of t.

Opdrachten voor foutopsporingsprogramma

Wanneer u het foutopsporingsprogramma in de PowerShell-console gebruikt, gebruikt u de volgende opdrachten om de uitvoering te beheren. Gebruik in Windows PowerShell ISE opdrachten in het menu Foutopsporing.

Notitie

Zie de documentatie van de hosttoepassing voor informatie over het gebruik van het foutopsporingsprogramma in andere hosttoepassingen.

  • s, StepInto: voert de volgende instructie uit en stopt.

  • v, : StepOvervoert de volgende instructie uit, maar slaat functies en aanroepen over. De overgeslagen instructies worden uitgevoerd, maar niet doorlopen.

  • Ctrl+Break: (Alles onderbreken in ISE) Breekt in een actief script in de PowerShell-console of Windows PowerShell ISE. Houd er rekening mee dat Ctrl-einde+ in Windows PowerShell 2.0, 3.0 en 4.0 het programma sluit. Break All werkt zowel op lokale als op afstand interactief uitgevoerde scripts.

  • o, : StepOutStappen uit de huidige functie; één niveau omhoog indien genest. Als deze zich in de hoofdtekst bevindt, gaat het verder naar het einde of het volgende onderbrekingspunt. De overgeslagen instructies worden uitgevoerd, maar niet doorlopen.

  • c, Continue: wordt uitgevoerd totdat het script is voltooid of totdat het volgende onderbrekingspunt is bereikt. De overgeslagen instructies worden uitgevoerd, maar niet doorlopen.

  • l, : ListGeeft het deel weer van het script dat wordt uitgevoerd. Standaard worden de huidige regel, vijf vorige regels en 10 volgende regels weergegeven. Druk op Enter om door te gaan met het weergeven van het script.

  • l <m>, : ListGeeft 16 regels van het script weer die beginnen met het regelnummer dat is opgegeven door <m>.

  • l <m> <n>, List: Geeft <n> regels van het script weer, beginnend met het regelnummer dat is opgegeven door <m>.

  • q, , : StopExitstopt met het uitvoeren van het script en sluit het foutopsporingsprogramma af. Als u fouten in een taak opspoort door de cmdlet uit te voeren, wordt met de Debug-JobExit opdracht het foutopsporingsprogramma losgekoppeld en kan de taak worden uitgevoerd.

  • k, : Get-PsCallStackGeeft de huidige aanroepstack weer.

  • <Enter>: Herhaalt de laatste opdracht als het (), () of List (l) was Step .vStepOvers Anders vertegenwoordigt u een verzendactie.

  • ?, h: Geeft de Help van het foutopsporingsprogramma weer.

Als u het foutopsporingsprogramma wilt afsluiten, kunt u (q) gebruiken Stop .

Vanaf PowerShell 5.0 kunt u de opdracht Afsluiten uitvoeren om een geneste foutopsporingssessie af te sluiten die u hebt gestart door een Debug-Job of Debug-Runspace.

Met behulp van deze foutopsporingsprogramma-opdrachten kunt u een script uitvoeren, stoppen op een probleempunt, de waarden van variabelen en de status van het systeem onderzoeken en het script blijven uitvoeren totdat u een probleem hebt geïdentificeerd.

Notitie

Als u stapt in een instructie met een omleidingsoperator, zoals >, voert het PowerShell-foutopsporingsprogramma alle resterende instructies in het script uit.

De waarden van scriptvariabelen weergeven

Terwijl u zich in het foutopsporingsprogramma bevindt, kunt u ook opdrachten invoeren, de waarde van variabelen weergeven, cmdlets gebruiken en scripts uitvoeren op de opdrachtregel. U kunt de huidige waarde van alle variabelen weergeven in het script dat wordt opgespoord, met uitzondering van de volgende automatische variabelen:

$_
$Args
$Input
$MyInvocation
$PSBoundParameters

Wanneer u de waarde van een van deze variabelen weergeeft, krijgt u de waarde van die variabele voor een interne pijplijn die het foutopsporingsprogramma gebruikt, niet de waarde van de variabele in het script.

Als u de waarde van deze variabelen wilt weergeven voor het script dat wordt opgespoord, voegt u regels toe aan uw script om deze waarden op te slaan in een nieuwe variabele. Stel het onderbrekingspunt na deze nieuwe regels in. Vervolgens kunt u de waarde van de nieuwe variabele weergeven.

Voorbeeld:

$scriptArgs = $Args
$scriptname = $MyInvocation.PSCommandPath

De foutopsporingsprogrammaomgeving

Wanneer u een onderbrekingspunt bereikt, voert u de foutopsporingsprogrammaomgeving in. De opdrachtprompt verandert zodat deze begint met [DBG]:. In sommige hosttoepassingen, zoals de PowerShell-console, wordt ook een geneste prompt geopend voor foutopsporing. U kunt de geneste prompt detecteren door de herhalende tekens (ASCII 62) die worden weergegeven bij de opdrachtprompt.

Zie about_Prompts voor meer informatie over het aanpassen van de prompt.

U kunt het nestniveau vinden met behulp van de $NestedPromptLevel automatische variabele. De automatische variabele, $PSDebugContextwordt gedefinieerd in het lokale bereik. U kunt de aanwezigheid van de $PSDebugContext variabele gebruiken om te bepalen of u in het foutopsporingsprogramma werkt.

Voorbeeld:

if ($PSDebugContext) {"Debugging"} else {"Not Debugging"}

U kunt de waarde van de $PSDebugContext variabele gebruiken in uw foutopsporing.

[DBG]: PS>>> $PSDebugContext.InvocationInfo

Name   CommandLineParameters  UnboundArguments  Location
----   ---------------------  ----------------  --------
=      {}                     {}                C:\ps-test\vote.ps1 (1)

Foutopsporing en bereik

Als u in het foutopsporingsprogramma inbreekt, wordt het bereik waarin u werkt niet gewijzigd, maar wanneer u een onderbrekingspunt in een script bereikt, gaat u naar het scriptbereik. Het scriptbereik is een onderliggend element van het bereik waarin u het foutopsporingsprogramma hebt uitgevoerd.

Als u de variabelen en aliassen wilt vinden die zijn gedefinieerd in het scriptbereik, gebruikt u de parameter Bereik van de Get-Alias of Get-Variable cmdlets.

Met de volgende opdracht worden bijvoorbeeld de variabelen in het lokale bereik (script) ophaalt:

Get-Variable -scope 0

Dit is een handige manier om alleen de variabelen te zien die u in het script hebt gedefinieerd en die u hebt gedefinieerd tijdens foutopsporing.

Foutopsporing op de opdrachtregel

Wanneer u een variabele onderbrekingspunt of een opdrachtonderbrekingspunt instelt, kunt u het onderbrekingspunt alleen instellen in een scriptbestand. Standaard is het onderbrekingspunt echter ingesteld op alles wat in de huidige sessie wordt uitgevoerd.

Als u bijvoorbeeld een onderbrekingspunt voor de $name variabele instelt, wordt het foutopsporingsprogramma onderbroken op een variabele in een $name script, opdracht, functie, script-cmdlet of expressie die u uitvoert totdat u het onderbrekingspunt uitschakelt of verwijdert.

Hierdoor kunt u fouten opsporen in uw scripts in een realistischere context waarin deze mogelijk worden beïnvloed door functies, variabelen en andere scripts in de sessie en in het profiel van de gebruiker.

Regelonderbrekingspunten zijn specifiek voor scriptbestanden, zodat ze alleen worden ingesteld in scriptbestanden.

Foutopsporingsfuncties

Wanneer u een onderbrekingspunt instelt voor een functie met begin, processen end secties, wordt het foutopsporingsprogramma beëindigd op de eerste regel van elke sectie.

Voorbeeld:

function test-cmdlet {
    begin {
        write-output "Begin"
    }
    process {
        write-output "Process"
    }
    end {
        write-output "End"
    }
}

C:\PS> Set-PSBreakpoint -command test-cmdlet

C:\PS> test-cmdlet

Begin
Entering debug mode. Use h or ? for help.

Hit Command breakpoint on 'prompt:test-cmdlet'

test-cmdlet

[DBG]: C:\PS> c
Process
Entering debug mode. Use h or ? for help.

Hit Command breakpoint on 'prompt:test-cmdlet'

test-cmdlet

[DBG]: C:\PS> c
End
Entering debug mode. Use h or ? for help.

Hit Command breakpoint on 'prompt:test-cmdlet'

test-cmdlet

[DBG]: C:\PS>

Foutopsporing voor externe scripts

U kunt uitvoeren Enter-PSSession om een interactieve externe PowerShell-sessie te starten waarin u onderbrekingspunten kunt instellen en scriptbestanden en opdrachten op de externe computer kunt opsporen. Enter-PSSession hiermee kunt u opnieuw verbinding maken met een niet-verbonden sessie waarop een script of opdracht op een externe computer wordt uitgevoerd. Als het actieve script een onderbrekingspunt bereikt, start uw clientsessie automatisch het foutopsporingsprogramma. Als de niet-verbonden sessie waarop een script wordt uitgevoerd, al een onderbrekingspunt heeft bereikt, Enter-PSSession wordt het foutopsporingsprogramma van de opdrachtregel automatisch gestart wanneer u opnieuw verbinding maakt met de sessie.

In het volgende voorbeeld ziet u hoe dit werkt. Onderbrekingspunten zijn ingesteld op regel 6, 11, 22 en 25 van het script. Wanneer het foutopsporingsprogramma wordt gestart, zijn er twee identificerende wijzigingen in de prompt:

  • De naam van de computer waarop de sessie wordt uitgevoerd
  • De PROMPT van DBG waarmee u weet dat u zich in de foutopsporingsmodus bevindt
Enter-PSSession -Cn localhost
[localhost]: PS C:\psscripts> Set-PSBreakpoint .\ttest19.ps1 6,11,22,25

ID Script          Line     Command          Variable          Action
-- ------          ----     -------          --------          ------
0 ttest19.ps1          6
1 ttest19.ps1          11
2 ttest19.ps1          22
3 ttest19.ps1          25

[localhost]: PS C:\psscripts> .\ttest19.ps1
Hit Line breakpoint on 'C:\psscripts\ttest19.ps1:11'

At C:\psscripts\ttest19.ps1:11 char:1
+ $winRMName = "WinRM"
# + ~

[localhost]: [DBG]: PS C:\psscripts>> list

6:      1..5 | foreach { sleep 1; Write-Output "hello2day $_" }
7:  }
# 8:

9:  $count = 10
10:  $psName = "PowerShell"
11:* $winRMName = "WinRM"
12:  $myVar = 102
# 13:

14:  for ($i=0; $i -lt $count; $i++)
15:  {
16:      sleep 1
17:      Write-Output "Loop iteration is: $i"
18:      Write-Output "MyVar is $myVar"
# 19:

20:      hello2day
# 21:


[localhost]: [DBG]: PS C:\psscripts>> stepover
At C:\psscripts\ttest19.ps1:12 char:1
+ $myVar = 102
# + ~

[localhost]: [DBG]: PS C:\psscripts>> quit
[localhost]: PS C:\psscripts> Exit-PSSession
PS C:\psscripts>

Voorbeelden

Met dit testscript wordt de versie van PowerShell gedetecteerd en wordt een bericht weergegeven dat geschikt is voor de versie. Het bevat een functie, een functie-aanroep en een variabele.

Met de volgende opdracht wordt de inhoud van het testscriptbestand weergegeven:

PS C:\PS-test>  Get-Content test.ps1

function psversion {
  "PowerShell " + $PSVersionTable.PSVersion
  if ($PSVersionTable.PSVersion.Major -lt 7) {
    "Upgrade to PowerShell 7!"
  }
  else {
    "Have you run a background job today (start-job)?"
  }
}

$scriptName = $MyInvocation.PSCommandPath
psversion
"Done $scriptName."

Als u wilt beginnen, stelt u een onderbrekingspunt in op een nuttige plaats in het script, zoals een regel, opdracht, variabele of functie.

Begin met het maken van een regeleindepunt op de eerste regel van het script Test.ps1 in de huidige map.

PS C:\ps-test> Set-PSBreakpoint -line 1 -script test.ps1

De opdracht retourneert een System.Management.Automation.LineBreakpoint-object .

Column     : 0
Line       : 1
Action     :
Enabled    : True
HitCount   : 0
Id         : 0
Script     : C:\ps-test\test.ps1
ScriptName : C:\ps-test\test.ps1

Start nu het script.

PS C:\ps-test> .\test.ps1

Wanneer het script het eerste onderbrekingspunt bereikt, geeft het onderbrekingspuntbericht aan dat het foutopsporingsprogramma actief is. Het beschrijft het onderbrekingspunt en bekijkt de eerste regel van het script, een functiedeclaratie. De opdrachtprompt verandert ook om aan te geven dat het foutopsporingsprogramma controle heeft.

De preview-regel bevat de scriptnaam en het regelnummer van de voorbeeldopdracht.

Entering debug mode. Use h or ? for help.

Hit Line breakpoint on 'C:\ps-test\test.ps1:1'

test.ps1:1   function psversion {
DBG>

Gebruik de opdracht Stap (s) om de eerste instructie in het script uit te voeren en een voorbeeld van de volgende instructie te bekijken. In de volgende instructie wordt de $MyInvocation automatische variabele gebruikt om de waarde van de $scriptName variabele in te stellen op het pad en de bestandsnaam van het scriptbestand.

DBG> s
test.ps1:11  $scriptName = $MyInvocation.PSCommandPath

Op dit moment is de $scriptName variabele niet ingevuld, maar u kunt de waarde van de variabele controleren door de bijbehorende waarde weer te geven. In dit geval is $nullde waarde .

DBG> $scriptname
DBG>

Gebruik een andere Step opdracht (s) om de huidige instructie uit te voeren en een voorbeeld van de volgende instructie in het script te bekijken. Met de volgende instructie wordt de functie aangeroepen psversion .

DBG> s
test.ps1:12  psversion

Op dit moment wordt de $scriptName variabele ingevuld, maar u controleert de waarde van de variabele door de waarde ervan weer te geven. In dit geval wordt de waarde ingesteld op het scriptpad.

DBG> $scriptName
C:\ps-test\test.ps1

Gebruik een andere stapopdracht om de functie-aanroep uit te voeren. Druk op Enter of typ 's' voor stap.

DBG> s
test.ps1:2       "PowerShell " + $PSVersionTable.PSVersion

Het foutopsporingsbericht bevat een voorbeeld van de instructie in de functie. Als u deze instructie wilt uitvoeren en een voorbeeld van de volgende instructie in de functie wilt bekijken, kunt u een Step opdracht gebruiken. In dit geval gebruikt u echter een StepOut-opdracht (o). Hiermee wordt de uitvoering van de functie voltooid (tenzij deze een onderbrekingspunt bereikt) en stappen naar de volgende instructie in het script.

DBG> o
Windows PowerShell 2.0
Have you run a background job today (start-job)?
test.ps1:13  "Done $scriptName"

Omdat we de laatste instructie in het script hebben, hebben de opdrachten Step, StepOut en Continue hetzelfde effect. In dit geval gebruikt u StepOut (o).

Done C:\ps-test\test.ps1
PS C:\ps-test>

Met de StepOut-opdracht wordt de laatste opdracht uitgevoerd. De standaardopdrachtprompt geeft aan dat het foutopsporingsprogramma is afgesloten en het besturingselement heeft geretourneerd naar de opdrachtprocessor.

Voer nu het foutopsporingsprogramma opnieuw uit. Als u eerst het huidige onderbrekingspunt wilt verwijderen, gebruikt u de Get-PsBreakpoint en Remove-PsBreakpoint cmdlets. (Als u denkt dat u het onderbrekingspunt opnieuw gebruikt, gebruikt u de Disable-PsBreakpoint cmdlet in plaats van Remove-PsBreakpoint.)

PS C:\ps-test> Get-PSBreakpoint| Remove-PSBreakpoint

U kunt deze opdracht verkorten als:

PS C:\ps-test> gbp | rbp

Of voer de opdracht uit door een functie te schrijven, zoals de volgende functie:

function delbr { gbp | rbp }

Maak nu een onderbrekingspunt voor de $scriptname variabele.

PS C:\ps-test> Set-PSBreakpoint -variable scriptname -script test.ps1

U kunt de opdracht verkorten als:

PS C:\ps-test> sbp -v scriptname -s test.ps1

Start nu het script. Het script bereikt het onderbrekingspunt van de variabele. De standaardmodus is Schrijven, dus de uitvoering stopt vlak voor de instructie waarmee de waarde van de variabele wordt gewijzigd.

PS C:\ps-test> .\test.ps1
Hit Variable breakpoint on 'C:\ps-test\test.ps1:$scriptName'
(Write access)

test.ps1:11  $scriptName = $MyInvocation.PSCommandPath
DBG>

De huidige waarde van de $scriptName variabele weergeven.$null

DBG> $scriptName
DBG>

Gebruik een Step opdracht (s) om de instructie uit te voeren waarmee de variabele wordt gevuld. Geef vervolgens de nieuwe waarde van de $scriptName variabele weer.

DBG> $scriptName
C:\ps-test\test.ps1

Gebruik een stapopdracht (s) om een voorbeeld van de volgende instructie in het script te bekijken.

DBG> s
test.ps1:12  psversion

De volgende instructie is een aanroep naar de psversion functie. Gebruik een StepOver opdracht (v) om de functie over te slaan, maar deze nog steeds uit te voeren. Als u zich al in de functie bevindt wanneer u deze gebruikt StepOver, is deze niet effectief. De functieaanroep wordt weergegeven, maar wordt niet uitgevoerd.

DBG> v
Windows PowerShell 2.0
Have you run a background job today (start-job)?
test.ps1:13  "Done $scriptName"

Met StepOver de opdracht wordt de functie uitgevoerd en wordt een voorbeeld weergegeven van de volgende instructie in het script, waarmee de laatste regel wordt afgedrukt.

Gebruik een Stop opdracht (t) om het foutopsporingsprogramma af te sluiten. De opdrachtprompt wordt teruggezet naar de standaardopdrachtprompt.

C:\ps-test>

Als u de onderbrekingspunten wilt verwijderen, gebruikt u de Get-PsBreakpoint en Remove-PsBreakpoint cmdlets.

PS C:\ps-test> Get-PSBreakpoint| Remove-PSBreakpoint

Maak een nieuw onderbrekingspunt voor opdrachten in de psversion functie.

PS C:\ps-test> Set-PSBreakpoint -command psversion -script test.ps1

U kunt deze opdracht verkorten tot:

PS C:\ps-test> sbp -c psversion -s test.ps1

Voer nu het script uit.

PS C:\ps-test> .\test.ps1
Hit Command breakpoint on 'C:\ps-test\test.ps1:psversion'

test.ps1:12  psversion
DBG>

Het script bereikt het onderbrekingspunt bij de functie-aanroep. Op dit moment is de functie nog niet aangeroepen. Dit geeft u de mogelijkheid om de actieparameter te gebruiken om Set-PSBreakpoint voorwaarden in te stellen voor de uitvoering van het onderbrekingspunt of om voorbereidende of diagnostische taken uit te voeren, zoals het starten van een logboek of het aanroepen van een diagnose- of beveiligingsscript.

Als u een actie wilt instellen, gebruikt u de opdracht Doorgaan (c) om het script af te sluiten en een Remove-PsBreakpoint opdracht om het huidige onderbrekingspunt te verwijderen. (Onderbrekingspunten zijn alleen-lezen, zodat u geen actie kunt toevoegen aan het huidige onderbrekingspunt.)

DBG> c
Windows PowerShell 2.0
Have you run a background job today (start-job)?
Done C:\ps-test\test.ps1

PS C:\ps-test> Get-PSBreakpoint| Remove-PSBreakpoint
PS C:\ps-test>

Maak nu een nieuw onderbrekingspunt voor opdrachten met een actie. Met de volgende opdracht wordt een onderbrekingspunt voor opdrachten ingesteld met een actie waarmee de waarde van de $scriptName variabele wordt vastgelegd wanneer de functie wordt aangeroepen. Omdat het break trefwoord niet wordt gebruikt in de actie, stopt de uitvoering niet. De backtick (`) is het lijnvervolgteken.

PS C:\ps-test> Set-PSBreakpoint -command psversion -script test.ps1  `
-action { add-content "The value of `$scriptName is $scriptName." `
-path action.log}

U kunt ook acties toevoegen waarmee voorwaarden voor het onderbrekingspunt worden ingesteld. In de volgende opdracht wordt het onderbrekingspunt van de opdracht alleen uitgevoerd als het uitvoeringsbeleid is ingesteld op RemoteSigned, het meest beperkende beleid waarmee u nog steeds scripts kunt uitvoeren.

PS C:\ps-test> Set-PSBreakpoint -script test.ps1 -command psversion `
-action { if ((Get-ExecutionPolicy) -eq "RemoteSigned") { break }}

Het break trefwoord in de actie leidt het foutopsporingsprogramma om het onderbrekingspunt uit te voeren. U kunt het continue trefwoord ook gebruiken om het foutopsporingsprogramma te leiden om uit te voeren zonder dat dit wordt onderbroken. Omdat het standaardwoord is continue, moet u opgeven break dat u de uitvoering wilt stoppen.

Voer nu het script uit.

PS C:\ps-test> .\test.ps1
Hit Command breakpoint on 'C:\ps-test\test.ps1:psversion'

test.ps1:12  psversion

Omdat het uitvoeringsbeleid is ingesteld op RemoteSigned, stopt de uitvoering bij de functieaanroep.

Op dit moment wilt u mogelijk de aanroepstack controleren. Gebruik de Get-PsCallStack cmdlet of de Get-PsCallStack foutopsporingsprogramma-opdracht (k). Met de volgende opdracht wordt de huidige aanroepstack ophaalt.

DBG> k
2: prompt
1: .\test.ps1: $args=[]
0: prompt: $args=[]

In dit voorbeeld ziet u slechts een paar van de vele manieren om het PowerShell-foutopsporingsprogramma te gebruiken.

Andere functies voor foutopsporing in PowerShell

Naast het PowerShell-foutopsporingsprogramma bevat PowerShell verschillende andere functies die u kunt gebruiken voor het opsporen van fouten in scripts en functies.

  • De Set-PSDebug cmdlet biedt zeer eenvoudige script foutopsporingsfuncties, waaronder stap- en tracering.

  • Gebruik de Set-StrictMode cmdlet om verwijzingen naar niet-geïnitialiseerde variabelen te detecteren, verwijzingen te verwijzen naar niet-bestaande eigenschappen van een object en om de syntaxis te gebruiken die niet geldig is.

  • Voeg diagnostische instructies toe aan een script, zoals instructies die de waarde van variabelen weergeven, instructies die invoer lezen vanaf de opdrachtregel of instructies die de huidige instructie rapporteren. Gebruik de cmdlets die het schrijfwoord voor deze taak bevatten, zoals Write-Host, Write-Debugen Write-WarningWrite-Verbose.

Zie ook