Debug-Runspace
Start een interactieve foutopsporingssessie met een runspace.
Syntaxis
RunspaceParameterSet (Standaard)
Debug-Runspace
[-Runspace] <Runspace>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Debug-Runspace
[-Name] <String>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
IdParameterSet
Debug-Runspace
[-Id] <Int32>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Debug-Runspace
[-InstanceId] <Guid>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
De cmdlet Debug-Runspace start een interactieve foutopsporingssessie met een lokale of externe actieve runspace. U kunt een runspace vinden die u wilt opsporen door eerst Get-Process uit te voeren om processen te vinden die zijn gekoppeld aan PowerShell. Vervolgens Enter-PSHostProcess met de proces-id die is opgegeven in de parameter -id om aan het proces te koppelen en Get-Runspace vervolgens runspaces in het PowerShell-hostproces weer te geven.
Nadat u een runspace hebt geselecteerd om fouten op te sporen, als de runspace momenteel een opdracht of script uitvoert, of als het script is gestopt bij een onderbrekingspunt, opent PowerShell een externe foutopsporingssessie voor de runspace. U kunt fouten opsporen in het runspace-script op dezelfde manier als externe sessiescripts foutopsporing.
U kunt alleen koppelen aan een PowerShell-hostproces als u een beheerder bent op de computer waarop het proces wordt uitgevoerd, of als u het script uitvoert dat u wilt opsporen. U kunt ook het hostproces dat de huidige PowerShell-sessie uitvoert, niet invoeren. U kunt alleen een hostproces invoeren waarop een andere PowerShell-sessie wordt uitgevoerd.
Voorbeelden
Voorbeeld 1: Fouten opsporen in een externe runspace
In dit voorbeeld gaat u fouten opsporen in een runspace die is geopend op een externe computer, WS10TestServer. In de eerste regel van de opdracht voert u Get-Process uit op de externe computer en filtert u op Windows PowerShell-hostprocessen. In dit voorbeeld wilt u fouten opsporen in proces-id 1152, het Windows PowerShell ISE-hostproces.
PS C:\> Get-Process -ComputerName "WS10TestServer" -Name "*powershell*"
Handles WS(K) VM(M) CPU(s) Id ProcessName
------- ----- ----- ------ -- -----------
377 69912 63 2.09 2420 powershell
399 123396 829 4.48 1152 powershell_ise
PS C:\> Enter-PSSession -ComputerName "WS10TestServer"
[WS10TestServer]:PS C:\> Enter-PSHostProcess -Id 1152
[WS10TestServer:][Process:1152]: PS C:\Users\Test\Documents> Get-Runspace
Id Name ComputerName Type State Availability
-- ---- ------------ ---- ----- ------------
1 Runspace1 WS10TestServer Remote Opened Available
2 RemoteHost WS10TestServer Remote Opened Busy
[WS10TestServer][Process:1152]: PS C:\Users\Test\Documents> Debug-Runspace -Id 2
Hit Line breakpoint on 'C:\TestWFVar1.ps1:83'
At C:\TestWFVar1.ps1:83 char:1
+ $scriptVar = "Script Variable"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[Process:1152]: [RSDBG: 2]: PS C:\> >
In de tweede opdracht voert u Enter-PSSession uit om een externe sessie op WS10TestServer te openen. In de derde opdracht koppelt u het Windows PowerShell ISE-hostproces dat wordt uitgevoerd op de externe server door Enter-PSHostProcessuit te voeren en de id op te geven van het hostproces dat u hebt verkregen in de eerste opdracht, 1152.
In de vierde opdracht geeft u beschikbare runspaces voor proces-id 1152 weer door Get-Runspaceuit te voeren.
U noteert het id-nummer van de Bezet-runspace; er wordt een script uitgevoerd dat u wilt opsporen.
In de laatste opdracht begint u met het opsporen van fouten in een geopende runspace waarop een script wordt uitgevoerd, TestWFVar1.ps1, door Debug-Runspaceuit te voeren en de runspace te identificeren op basis van de id, 2, door de parameter -id toe te voegen. Omdat het script een onderbrekingspunt bevat, wordt het foutopsporingsprogramma geopend.
Parameters
-BreakAll
Hiermee kunt u direct een pauze inlassen op de huidige locatie wanneer de debugger wordt gekoppeld.
Deze parameter is toegevoegd in PowerShell 7.2.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Confirm
Voordat u de cmdlet uitvoert, vraagt het systeem om bevestiging.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | True |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | Cf |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Id
Hiermee geeft u het id-nummer van een runspace. U kunt Get-Runspace uitvoeren om runspace-id's weer te geven.
Parametereigenschappen
| Type: | Int32 |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
IdParameterSet
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-InstanceId
Hiermee geeft u een runspace op basis van de exemplaar-id, een GUID die u kunt weergeven door Get-Runspaceuit te voeren.
Parametereigenschappen
| Type: | Guid |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
InstanceIdParameterSet
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Name
Hiermee geeft u een runspace op basis van de naam. U kunt Get-Runspace uitvoeren om de namen van runspaces weer te geven.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
NameParameterSet
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Runspace
Hiermee geeft u een runspace-object. De eenvoudigste manier om een waarde voor deze parameter op te geven, is door een variabele op te geven die de resultaten van een gefilterde Get-Runspace opdracht bevat.
Parametereigenschappen
| Type: | Runspace |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
RunspaceParameterSet
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | True |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | False |
-WhatIf
Toont wat er zou gebeuren wanneer de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | True |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | Wi |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
Invoerwaarden
Runspace
U kunt de resultaten van een Get-Runspace opdracht doorsluisen naar deze cmdlet.
Notities
Debug-Runspace werkt op runspaces die de status Geopend hebben. Als de status van een runspace wordt gewijzigd van Geopend in een andere status, wordt die runspace automatisch verwijderd uit de actieve lijst. Een runspace wordt alleen toegevoegd aan de actieve lijst als deze voldoet aan de volgende criteria.
- Als deze afkomstig is van Invoke-Command; Dat wil gezegd, het heeft een
Invoke-CommandGUID-id. - Als het afkomstig is van
Debug-Runspace; Dat wil gezegd, het heeft eenDebug-RunspaceGUID-id. - Als deze afkomstig is van een PowerShell-werkstroom en de werkstroomtaak-id hetzelfde is als de huidige actieve werkstroomtaak-id voor foutopsporingsprogramma's.