Debug-Runspace
Uruchamia interaktywną sesję debugowania za pomocą przestrzeni uruchomieniowej.
Składnia
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>]
Opis
Polecenie Debug-Runspace
cmdlet uruchamia interaktywną sesję debugowania z lokalną lub zdalną aktywną przestrzenią uruchamiania. Możesz znaleźć przestrzeń uruchomieniową, którą chcesz debugować, uruchamiając Get-Process
polecenie w celu znalezienia procesów skojarzonych z programem PowerShell, a następnie Enter-PSHostProcess
z identyfikatorem procesu określonym w parametrze Id , aby dołączyć do procesu, a następnie Get-Runspace
wyświetlić listę przestrzeni uruchamiania w procesie hosta programu PowerShell.
Po wybraniu obszaru uruchamiania do debugowania, jeśli przestrzeń uruchomi obecnie polecenie lub skrypt, lub jeśli skrypt zatrzymał się w punkcie przerwania, program PowerShell otworzy zdalną sesję debugera dla przestrzeni uruchomieniowej. Skrypt runspace można debugować w taki sam sposób, jak skrypty sesji zdalnej są debugowane.
Proces hosta programu PowerShell można dołączyć tylko wtedy, gdy jesteś administratorem na komputerze, na którym jest uruchomiony proces, lub uruchamiasz skrypt, który chcesz debugować. Ponadto nie można wprowadzić procesu hosta, który uruchamia bieżącą sesję programu PowerShell. Można wprowadzić tylko proces hosta, który uruchamia inną sesję programu PowerShell.
Przykłady
Przykład 1. Debugowanie zdalnej przestrzeni uruchamiania
W tym przykładzie debugujesz przestrzeń uruchomieniową otwartą na komputerze zdalnym WS10TestServer. W pierwszym wierszu polecenia uruchomisz polecenie Get-Process
na komputerze zdalnym i filtrujesz procesy hosta Windows PowerShell. W tym przykładzie chcesz debugować identyfikator procesu 1152, proces hosta 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:\> >
W drugim poleceniu uruchomisz polecenie Enter-PSSession
, aby otworzyć sesję zdalną na serwerze WS10TestServer. W trzecim poleceniu dołączasz do procesu hosta Windows PowerShell ISE uruchomionego na serwerze zdalnym, uruchamiając polecenie Enter-PSHostProcess
, i określając identyfikator procesu hosta uzyskanego w pierwszym poleceniu 1152.
W czwartym poleceniu wyświetlisz listę dostępnych przestrzeni uruchamiania dla identyfikatora procesu 1152, uruchamiając polecenie Get-Runspace
.
Zanotujesz identyfikator zajętego obszaru uruchamiania; uruchamia skrypt, który chcesz debugować.
W ostatnim poleceniu rozpoczniesz debugowanie otwartego obszaru runspace, na którym jest uruchomiony skrypt TestWFVar1.ps1
, uruchamiając polecenie Debug-Runspace
, i identyfikując przestrzeń uruchomieniową według jego identyfikatora 2, dodając parametr Id . Ponieważ skrypt zawiera punkt przerwania, zostanie otwarty debuger.
Parametry
-BreakAll
Umożliwia natychmiastowe przerwanie w bieżącej lokalizacji po dołączeniu debugera.
Parametr jest dostępny tylko jako funkcja eksperymentalna. Aby uzyskać więcej informacji, zobacz Używanie funkcji eksperymentalnych.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | True |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Określa identyfikator przestrzeni uruchomieniowej. Możesz uruchomić polecenie , Get-Runspace
aby wyświetlić identyfikatory przestrzeni uruchomieniowej.
Type: | Int32 |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InstanceId
Określa przestrzeń uruchomień według identyfikatora wystąpienia, identyfikator GUID, który można wyświetlić, uruchamiając polecenie Get-Runspace
.
Type: | Guid |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Określa przestrzeń uruchamiania według jego nazwy. Możesz uruchomić polecenie , Get-Runspace
aby wyświetlić nazwy przestrzeni uruchomieniowych.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Runspace
Określa obiekt runspace. Najprostszym sposobem podania wartości dla tego parametru jest określenie zmiennej zawierającej wyniki filtrowanego Get-Runspace
polecenia.
Type: | Runspace |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | True |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Wyniki polecenia można przekazać do Get-Runspace
polecenia Debug-Runspace.
Uwagi
Debug-Runspace
działa w przestrzeniach uruchomieniowych, które znajdują się w stanie Otwarty. Jeśli stan obszaru uruchomień zmieni się z Otwartego na inny stan, to przestrzeń uruchamiania zostanie automatycznie usunięta z uruchomionej listy. Przestrzeń uruchamiania jest dodawana do listy uruchomionej tylko wtedy, gdy spełnia następujące kryteria.
- Jeśli pochodzi on z polecenia Invoke-Command; oznacza to, że ma
Invoke-Command
identyfikator GUID. - Jeśli pochodzi z
Debug-Runspace
elementu ; oznacza to, że maDebug-Runspace
identyfikator GUID. - Jeśli pochodzi on z przepływu pracy programu PowerShell, a jego identyfikator zadania przepływu pracy przepływu pracy jest taki sam jak bieżący aktywny identyfikator zadania przepływu pracy debugera.