Bagikan melalui


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 untuk menemukan proses yang terkait dengan PowerShell, lalu dengan ID proses yang ditentukan dalam parameter Id untuk dilampirkan ke proses, lalu untuk mencantumkan runspace dalam proses host PowerShell.

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 GUID Debug-Runspace.
  • Jika berasal dari alur kerja PowerShell, dan ID pekerjaan alur kerjanya sama dengan ID pekerjaan alur kerja debugger aktif saat ini.