Debug-Runspace

Spustí interaktivní ladicí relaci s runspace.

Syntax

Debug-Runspace
     [-Runspace] <Runspace>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Runspace
     [-Name] <String>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Runspace
     [-Id] <Int32>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Runspace
     [-InstanceId] <Guid>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Description

Rutina Debug-Runspace spustí interaktivní ladicí relaci s místním nebo vzdáleným aktivním runspacem. Runspace, který chcete ladit, najdete tak, že nejprve spustíte Get-Process hledání procesů přidružených k PowerShellu, pak Enter-PSHostProcess s ID procesu zadaným v parametru ID pro připojení k procesu a pak Get-Runspace seznam runspaces v rámci procesu hostitele PowerShellu.

Jakmile vyberete runspace k ladění, pokud runspace právě spouští příkaz nebo skript, nebo pokud se skript zastavil na zarážce, PowerShell otevře vzdálenou relaci ladicího programu pro runspace. Skript runspace můžete ladit stejným způsobem jako skripty vzdálené relace.

K hostitelskému procesu PowerShellu se můžete připojit jenom v případě, že jste správcem počítače, na kterém je proces spuštěný, nebo spouštíte skript, který chcete ladit. Nelze také zadat hostitelský proces, který spouští aktuální relaci PowerShellu. Můžete zadat pouze hostitelský proces, na kterém běží jiná relace PowerShellu.

Příklady

Příklad 1: Ladění vzdáleného prostředí runspace

V tomto příkladu ladíte runspace, který je otevřený na vzdáleném počítači WS10TestServer. V prvním řádku příkazu spustíte Get-Process na vzdáleném počítači a vyfiltrujete Windows PowerShell hostitelských procesů. V tomto příkladu chcete ladit ID procesu 1152, proces hostitele Windows PowerShell ISE.

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:\> >

V druhém příkazu spustíte Enter-PSSession spuštěním vzdálené relace na WS10TestServer. Ve třetím příkazu se připojíte k procesu hostitele Windows PowerShell ISE spuštěného na vzdáleném serveru spuštěním Enter-PSHostProcessa zadáním ID procesu hostitele, který jste získali v prvním příkazu 1152.

Ve čtvrtém příkazu zobrazíte seznam dostupných runspaces pro ID procesu 1152 spuštěním Get-Runspace. Poznamenejte si číslo ID prostoru zaneprázdněného spuštění; spouští skript, který chcete ladit.

V posledním příkazu spustíte ladění otevřeného prostředí runspace, na kterém běží skript, TestWFVar1.ps1spuštěním Debug-Runspacea identifikací runspace podle ID, 2, přidáním parametru ID . Vzhledem k tomu, že ve skriptu existuje zarážka, otevře se ladicí program.

Parametry

-BreakAll

Umožňuje okamžitě přerušit aktuální umístění při připojení ladicího programu.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:True
Accept pipeline input:False
Accept wildcard characters:False

-Id

Určuje číslo ID runspace. Můžete spustit Get-Runspace a zobrazit ID runspace.

Type:Int32
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-InstanceId

Určuje prostor runspace podle ID jeho instance, identifikátor GUID, který můžete zobrazit spuštěním Get-Runspace.

Type:Guid
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Name

Určuje prostor runspace podle názvu. Můžete spustit Get-Runspace a zobrazit názvy prostorů runspace.

Type:String
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Runspace

Určuje objekt runspace. Nejjednodušší způsob, jak zadat hodnotu pro tento parametr, je zadat proměnnou, která obsahuje výsledky filtrovaného Get-Runspace příkazu.

Type:Runspace
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Zobrazuje, co by se stalo při spuštění rutiny. Rutina není spuštěna.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:True
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

Runspace

Výsledky Get-Runspace příkazu můžete převést do prostředí Debug-Runspace.

Poznámky

Debug-Runspace funguje na runspaces, které jsou ve stavu Otevření. Pokud se stav runspace změní z Otevření do jiného stavu, odebere se z spuštěného seznamu automaticky tento prostor. Runspace se přidá do spuštěného seznamu pouze v případě, že splňuje následující kritéria.

  • Pokud pochází z příkazu Invoke-Command; to znamená, že má Invoke-Command ID GUID.
  • Pokud pochází z Debug-Runspace; to znamená, že má Debug-Runspace IDENTIFIKÁTOR GUID.
  • Pokud pochází z pracovního postupu PowerShellu a JEHO ID úlohy pracovního postupu je stejné jako aktuální ID úlohy pracovního postupu aktivního ladicího programu.