Debug-Runspace
Démarre une session de débogage interactive avec un runspace.
Syntaxe
RunspaceParameterSet (Par défaut)
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
L’applet Debug-Runspace de commande démarre une session de débogage interactive avec un runspace actif local ou distant. Vous pouvez trouver un espace d’exécution que vous souhaitez déboguer en exécutant Get-Process d’abord pour rechercher les processus associés à PowerShell, puis Enter-PSHostProcess avec l’ID de processus spécifié dans le paramètre ID à joindre au processus, puis Get-Runspace pour répertorier les espaces d’exécution dans le processus hôte PowerShell.
Une fois que vous avez sélectionné un runspace pour déboguer, si l’espace d’exécution exécute actuellement une commande ou un script, ou si le script s’est arrêté à un point d’arrêt, PowerShell ouvre une session de débogueur distant pour l’espace d’exécution. Vous pouvez déboguer le script d’exécution de la même façon que les scripts de session distante sont débogués.
Vous pouvez uniquement joindre un processus hôte PowerShell si vous êtes administrateur sur l’ordinateur qui exécute le processus, ou si vous exécutez le script que vous souhaitez déboguer. En outre, vous ne pouvez pas entrer le processus hôte qui exécute la session PowerShell actuelle. Vous ne pouvez entrer qu’un processus hôte qui exécute une autre session PowerShell.
Exemples
Exemple 1 : Déboguer un espace d’exécution distant
Dans cet exemple, vous déboguez un espace d’exécution ouvert sur un ordinateur distant, WS10TestServer. Dans la première ligne de la commande, vous exécutez Get-Process sur l’ordinateur distant et filtrez les processus hôtes PowerShell Windows. Dans cet exemple, vous souhaitez déboguer l’ID de processus 1152, le processus hôte powerShell ISE Windows.
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:\> >
Dans la deuxième commande, vous exécutez Enter-PSSession pour ouvrir une session à distance sur WS10TestServer. Dans la troisième commande, vous attachez au processus hôte PowerShell ISE Windows s’exécutant sur le serveur distant en exécutant Enter-PSHostProcess et en spécifiant l’ID du processus hôte que vous avez obtenu dans la première commande, 1152.
Dans la quatrième commande, vous répertoriez les runspaces disponibles pour l’ID de processus 1152 en exécutant Get-Runspace.
Notez le numéro d’ID de l’espace d’exécution Occupé ; il exécute un script que vous souhaitez déboguer.
Dans la dernière commande, vous démarrez le débogage d’un runspace ouvert qui exécute un script, en TestWFVar1.ps1exécutant, et en identifiant l’espace d’exécution Debug-Runspacepar son ID, 2, en ajoutant le paramètre ID . Comme il existe un point d’arrêt dans le script, le débogueur s’ouvre.
Paramètres
-BreakAll
Vous permet de vous interrompre immédiatement à l’emplacement actuel lorsque le débogueur s’attache.
Ce paramètre a été ajouté dans PowerShell 7.2.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Confirm
Vous invite à confirmer avant d’exécuter l’applet de commande.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | True |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Cf |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Id
Spécifie le numéro d’ID d’un espace d’exécution. Vous pouvez exécuter pour afficher les ID d’espace d’exécution Get-Runspace .
Propriétés du paramètre
| Type: | Int32 |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
IdParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-InstanceId
Spécifie un runspace par son ID d’instance, un GUID que vous pouvez afficher en exécutant Get-Runspace.
Propriétés du paramètre
| Type: | Guid |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
InstanceIdParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Name
Spécifie un espace d’exécution par son nom. Vous pouvez exécuter Get-Runspace pour afficher les noms des espaces d’exécution.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
NameParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Runspace
Spécifie un objet runspace. La façon la plus simple de fournir une valeur pour ce paramètre consiste à spécifier une variable qui contient les résultats d’une commande filtrée Get-Runspace .
Propriétés du paramètre
| Type: | Runspace |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
RunspaceParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-WhatIf
Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande ne s’exécute pas.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | True |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Wi |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
Runspace
Vous pouvez diriger les résultats d’une Get-Runspace commande vers cette applet de commande.
Notes
Debug-Runspace fonctionne sur les runspaces qui sont dans l’état Ouvert. Si un état d’exécution passe de Ouvert à un autre état, cet espace d’exécution est automatiquement supprimé de la liste en cours d’exécution. Un runspace est ajouté à la liste en cours d’exécution uniquement s’il répond aux critères suivants.
- S’il provient de Invoke-Command ; autrement dit, il a un
Invoke-CommandID GUID. - S’il provient
Debug-Runspace; autrement dit, il a unDebug-RunspaceID GUID. - S’il provient d’un flux de travail PowerShell, et son ID de travail de workflow est identique à l’ID actuel du travail du débogueur actif.