Debug-Runspace
Uruchamia interaktywną sesję debugowania z obszarem uruchomieniowym.
Składnia
RunspaceParameterSet (Domyślna)
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>]
Opis
Polecenie cmdlet Debug-Runspace uruchamia interaktywną sesję debugowania z lokalną lub zdalną aktywną przestrzenią uruchamiania. Możesz znaleźć przestrzeń uruchomieniową, którą chcesz debugować, uruchamiając najpierw Get-Process w celu znalezienia procesów skojarzonych z programem PowerShell, a następnie Enter-PSHostProcess z identyfikatorem procesu określonym w parametrze id w celu dołączenia do procesu, a następnie Get-Runspace w celu wyświetlenia listy przestrzeni uruchomieniowych w procesie hosta programu PowerShell.
Po wybraniu przestrzeni roboczej do debugowania, jeśli przestrzeń robocza obecnie uruchamia polecenie lub skrypt, lub jeśli skrypt został zatrzymany w punkcie przerwania, program PowerShell otwiera zdalną sesję debugera dla przestrzeni roboczej. Skrypt runspace można debugować w taki sam sposób, jak skrypty sesji zdalnej są debugowane.
Możesz dołączyć tylko do procesu hosta programu PowerShell, jeśli jesteś administratorem na komputerze, na którym jest uruchomiony proces, lub uruchamiasz skrypt, który chcesz debugować. Ponadto nie można dostać się do procesu hosta, który obsługuje bieżącą sesję programu PowerShell. Możesz 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ń uruchamiania otwartą na komputerze zdalnym WS10TestServer. W pierwszym wierszu polecenia uruchomisz Get-Process na komputerze zdalnym i filtrujesz procesy hosta programu Windows PowerShell. W tym przykładzie chcesz debugować proces o identyfikatorze 1152— procesie hosta środowiska 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 Enter-PSSession, aby otworzyć sesję zdalną na serwerze WS10TestServer. W trzecim poleceniu dołączasz do procesu hosta środowiska Windows PowerShell ISE uruchomionego na serwerze zdalnym, uruchamiając Enter-PSHostProcessi określając identyfikator procesu hosta uzyskanego w pierwszym poleceniu 1152.
W czwartym poleceniu wyświetlasz listę dostępnych przestrzeni roboczych dla identyfikatora procesu 1152, uruchamiając Get-Runspace.
Zanotujesz identyfikator zajętego runspace; uruchamia skrypt, który chcesz debugować.
W ostatnim poleceniu rozpoczniesz debugowanie otwartej przestrzeni uruchomieniowej, na której uruchomiono skrypt,
Parametry
-BreakAll
Umożliwia natychmiastowe przerwanie w bieżącej lokalizacji, gdy debuger zostaje podłączony.
Ten parametr został dodany w programie PowerShell 7.2.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Confirm
Prosi o potwierdzenie przed uruchomieniem cmdletu.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | True |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | por |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Id
Określa numer identyfikatora przestrzeni uruchomieniowej. Możesz uruchomić Get-Runspace, aby wyświetlić identyfikatory przestrzeni uruchomieniowej.
Właściwości parametru
| Typ: | Int32 |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
IdParameterSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-InstanceId
Określa przestrzeń uruchomieniową na podstawie identyfikatora wystąpienia, GUID, który można wyświetlić, uruchamiając Get-Runspace.
Właściwości parametru
| Typ: | Guid |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
InstanceIdParameterSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Name
Określa przestrzeń uruchomieniową według jego nazwy. Możesz uruchomić Get-Runspace, aby wyświetlić nazwy przestrzeni uruchomieniowych.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
NameParameterSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Runspace
Określa obiekt runspace. Najprostszym sposobem podania wartości dla tego parametru jest określenie zmiennej zawierającej wyniki filtrowanego polecenia Get-Runspace.
Właściwości parametru
| Typ: | Runspace |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
RunspaceParameterSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-WhatIf
Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Cmdlet nie jest uruchomiony.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | True |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | Wi |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Dane wejściowe
Runspace
Wyniki polecenia Get-Runspace można przekazać do tego cmdletu.
Uwagi
Debug-Runspace działa w przestrzeniach uruchomieniowych, które znajdują się w stanie Otwarte. Jeśli stan przestrzeni uruchomieniowej ulegnie zmianie z otwartego na inny stan, to przestrzeń ta zostanie automatycznie usunięta z listy uruchomionych. Środowisko uruchomieniowe jest dodawane do listy uruchomionych tylko wtedy, gdy spełnia następujące kryteria.
- Jeśli pochodzi z polecenia Invoke-Command, oznacza to, że ma identyfikator GUID
Invoke-Command. - Jeśli pochodzi z
Debug-Runspace; oznacza to, że ma identyfikator GUIDDebug-Runspace. - Jeśli pochodzi z przepływu pracy programu PowerShell, a jego identyfikator zadania przepływu pracy jest taki sam jak bieżący identyfikator zadania aktywnego debugera przepływu pracy.