Debug-Runspace
Startar en interaktiv felsökningssession med ett runspace.
Syntax
Debug-Runspace
[-Runspace] <Runspace>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Runspace
[-Name] <String>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Runspace
[-Id] <Int32>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Runspace
[-InstanceId] <Guid>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdleten Debug-Runspace
startar en interaktiv felsökningssession med ett lokalt eller fjärranslutet aktivt runspace. Du hittar ett körningsutrymme som du vill felsöka genom att först köra Get-Process
för att hitta processer som är associerade med PowerShell och sedan Enter-PSHostProcess
med process-ID:t som anges i parametern ID som ska kopplas till processen och sedan Get-Runspace
att visa en lista över körningsytor i PowerShell-värdprocessen.
När du har valt ett körningsutrymme som ska felsökas, om körningsytan för närvarande kör ett kommando eller skript, eller om skriptet har stoppats vid en brytpunkt, öppnar PowerShell en fjärrkrypteringssession för runspace. Du kan felsöka runspace-skriptet på samma sätt som fjärrsessionsskript kopplas från.
Du kan bara ansluta till en PowerShell-värdprocess om du är administratör på den dator som kör processen, eller om du kör skriptet som du vill felsöka. Du kan inte heller ange värdprocessen som kör den aktuella PowerShell-sessionen. Du kan bara ange en värdprocess som kör en annan PowerShell-session.
Exempel
Exempel 1: Felsöka en fjärrkörning
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
PS C:\> [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:\> >
I det här exemplet felsöker du en runspace som är öppen på en fjärrdator, WS10TestServer. På den första raden i kommandot kör du Get-Process
på fjärrdatorn och filtrerar efter Windows PowerShell-värdprocesser. I det här exemplet vill du felsöka process-ID 1152, Windows PowerShell ISE-värdprocessen.
I det andra kommandot kör du Enter-PSSession
för att öppna en fjärrsession på WS10TestServer. I det tredje kommandot ansluter du till Windows PowerShell ISE-värdprocessen som körs på fjärrservern genom att köra Enter-PSHostProcess
och ange ID för värdprocessen som du fick i det första kommandot 1152.
I det fjärde kommandot listar du tillgängliga runspaces för process-ID 1152 genom att köra Get-Runspace
.
Du noterar ID-numret för Runspace Busy. den kör ett skript som du vill felsöka.
I det senaste kommandot börjar du felsöka en öppen runspace som kör ett skript, TestWFVar1.ps1, genom att köra Debug-Runspace
och identifiera körningsytan med dess ID, 2, genom att lägga till parametern ID. Eftersom det finns en brytpunkt i skriptet öppnas felsökningsprogrammet.
Parametrar
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Typ: | SwitchParameter |
Alias: | cf |
Position: | Named |
Standardvärde: | True |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Id
Anger ID-numret för en runspace. Du kan köra Get-Runspace
för att visa körnings-ID:t.
Typ: | Int32 |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-InstanceId
Anger ett körningsutrymme efter dess instans-ID, ett GUID som du kan visa genom att köra Get-Runspace
.
Typ: | Guid |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Name
Anger ett runspace med dess namn. Du kan köra Get-Runspace
för att visa namnen på runspaces.
Typ: | String |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Runspace
Anger ett runspace-objekt. Det enklaste sättet att ange ett värde för den här parametern är att ange en variabel som innehåller resultatet av ett filtrerat Get-Runspace
kommando.
Typ: | Runspace |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-WhatIf
Visar vad som skulle hända om cmdleten körs. Cmdleten körs inte.
Typ: | SwitchParameter |
Alias: | wi |
Position: | Named |
Standardvärde: | True |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
Du kan skicka resultatet av ett Get-Runspace
kommando till Debug-Runspace.
Kommentarer
Debug-Runspace
fungerar på runspaces som är i tillståndet Öppnade. Om ett körningstillstånd ändras från Öppnat till ett annat tillstånd tas det körningsutrymmet bort automatiskt från listan som körs. En runspace läggs bara till i listan som körs om den uppfyller följande villkor.
- Om den kommer från Invoke-Command; den har alltså ett guid-ID för
Invoke-Command
. - Om den kommer från
Debug-Runspace
; den har alltså ettDebug-Runspace
GUID-ID. - Om det kommer från ett PowerShell-arbetsflöde och dess arbetsflödesjobb-ID är detsamma som det aktuella aktiva jobb-ID:t för det aktiva felsökningsarbetsflödet.