Debug-Runspace
Memulai sesi penelusuran kesalahan interaktif dengan runspace.
Sintaks
RunspaceParameterSet (Default)
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>]
Deskripsi
cmdlet Debug-Runspace memulai sesi penelusuran kesalahan interaktif dengan runspace aktif lokal atau jarak jauh. Anda dapat menemukan runspace yang ingin Anda debug dengan terlebih dahulu menjalankan
Setelah Anda memilih runspace untuk debug, jika runspace saat ini menjalankan perintah atau skrip, atau jika skrip berhenti di titik henti, PowerShell membuka sesi debugger jarak jauh untuk runspace. Anda dapat men-debug skrip runspace dengan cara yang sama seperti skrip sesi jarak jauh yang di-debug.
Anda hanya dapat melampirkan ke proses host PowerShell jika Anda adalah administrator di komputer yang menjalankan proses, atau Anda menjalankan skrip yang ingin Anda debug. Selain itu, Anda tidak dapat memasukkan proses host yang menjalankan sesi PowerShell saat ini. Anda hanya dapat memasukkan proses host yang menjalankan sesi PowerShell yang berbeda.
Contoh
Contoh 1: Men-debug runspace jarak jauh
Dalam contoh ini, Anda men-debug runspace yang terbuka di komputer jarak jauh, WS10TestServer. Di baris pertama perintah, Anda menjalankan Get-Process di komputer jarak jauh, dan memfilter proses host Windows PowerShell. Dalam contoh ini, Anda ingin men-debug ID proses 1152, proses host ISE Windows PowerShell.
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:\> >
Pada perintah kedua, Anda menjalankan Enter-PSSession untuk membuka sesi jarak jauh di WS10TestServer. Di perintah ketiga, Anda melampirkan ke proses host ISE Windows PowerShell yang berjalan di server jarak jauh dengan menjalankan Enter-PSHostProcess, dan menentukan ID proses host yang Anda peroleh di perintah pertama, 1152.
Dalam perintah keempat, Anda mencantumkan runspace yang tersedia untuk ID proses 1152 dengan menjalankan Get-Runspace.
Anda mencatat nomor ID runspace Sibuk; menjalankan skrip yang ingin Anda debug.
Dalam perintah terakhir, Anda mulai men-debug runspace yang dibuka yang menjalankan skrip, TestWFVar1.ps1, dengan menjalankan Debug-Runspace, dan mengidentifikasi runspace dengan ID-nya, 2, dengan menambahkan parameter Id. Karena ada titik henti dalam skrip, debugger terbuka.
Parameter
-BreakAll
Memungkinkan Anda untuk berhenti seketika di lokasi saat ini ketika debugger terpasang.
Parameter ini ditambahkan di PowerShell 7.2.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Confirm
Meminta konfirmasi sebelum menjalankan cmdlet.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | True |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | Cf |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Id
Menentukan nomor ID runspace. Anda dapat menjalankan Get-Runspace untuk menampilkan ID runspace.
Properti parameter
| Jenis: | Int32 |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
IdParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-InstanceId
Menentukan runspace menurut ID instansnya, GUID yang dapat Anda tampilkan dengan menjalankan Get-Runspace.
Properti parameter
| Jenis: | Guid |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
InstanceIdParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Name
Menentukan runspace menurut namanya. Anda dapat menjalankan Get-Runspace untuk menampilkan nama runspace.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
NameParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Runspace
Menentukan objek runspace. Cara paling sederhana untuk memberikan nilai untuk parameter ini adalah dengan menentukan variabel yang berisi hasil perintah Get-Runspace yang difilter.
Properti parameter
| Jenis: | Runspace |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
RunspaceParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-WhatIf
Menunjukkan apa yang akan terjadi ketika cmdlet dijalankan. Cmdlet tidak dijalankan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | True |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | wi |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
Runspace
Anda dapat menyalurkan hasil perintah Get-Runspace ke cmdlet ini.
Catatan
Debug-Runspace berfungsi pada runspace yang berada dalam status Dibuka. Jika status runspace berubah dari Dibuka ke status lain, runspace tersebut secara otomatis dihapus dari daftar yang sedang berjalan. Runspace ditambahkan ke daftar yang sedang berjalan hanya jika memenuhi kriteria berikut.
- Jika itu berasal dari Invoke-Command; artinya, ia memiliki ID GUID
Invoke-Command. - Jika berasal dari
Debug-Runspace; artinya, ia memiliki ID GUIDDebug-Runspace. - Jika berasal dari alur kerja PowerShell, dan ID pekerjaan alur kerjanya sama dengan ID pekerjaan alur kerja debugger aktif saat ini.