Aracılığıyla paylaş


Debug-Runspace

Runspace ile etkileşimli bir hata ayıklama oturumu başlatır.

Syntax

Debug-Runspace
     [-Runspace] <Runspace>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Runspace
     [-Name] <String>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Runspace
     [-Id] <Int32>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Runspace
     [-InstanceId] <Guid>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Description

Cmdlet, Debug-Runspace yerel veya uzak etkin bir çalışma alanıyla etkileşimli bir hata ayıklama oturumu başlatır. Hata ayıklamak istediğiniz bir çalışma alanı bulmak için önce PowerShell ile ilişkilendirilmiş işlemleri, ardından Enter-PSHostProcess işleme eklenecek kimlik parametresinde belirtilen işlem kimliğiyle ve ardından Get-Runspace PowerShell konak işlemi içindeki runspace'leri listeleyerek komutunu çalıştırabilirsinizGet-Process.

Hata ayıklamak için bir çalışma alanı seçtikten sonra, çalışma alanı şu anda bir komut veya betik çalıştırıyorsa veya betik bir kesme noktasında durdurulduysa PowerShell, çalışma alanı için bir uzak hata ayıklayıcı oturumu açar. Runspace betiğinin hatalarını, uzak oturum betiklerinin hata ayıklandığı şekilde ayıklayabilirsiniz.

PowerShell konak işlemine yalnızca işlemi çalıştıran bilgisayarda yöneticiyseniz veya hata ayıklamak istediğiniz betiği çalıştırıyorsanız ekleyebilirsiniz. Ayrıca, geçerli PowerShell oturumunu çalıştıran konak işlemini de giremezsiniz. Yalnızca farklı bir PowerShell oturumu çalıştıran bir konak işlemi girebilirsiniz.

Örnekler

Örnek 1: Uzak çalışma alanının hatalarını ayıklama

Bu örnekte, WS10TestServer adlı uzak bilgisayarda açık olan bir çalışma alanında hata ayıklaacaksınız. Komutun ilk satırında, uzak bilgisayarda çalıştırılır Get-Process ve Windows PowerShell konak işlemleri için filtrelemeniz gerekir. Bu örnekte, ISE konak işlemi olan Windows PowerShell işlem kimliği 1152'de hata ayıklamak istiyorsunuz.

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:\> >

İkinci komutta komutunu çalıştırarak Enter-PSSession WS10TestServer'da bir uzak oturum açarsınız. Üçüncü komutta, komutunu çalıştırarak Enter-PSHostProcessve ilk komut olan 1152'de elde ettiğiniz konak işleminin kimliğini belirterek uzak sunucuda çalışan Windows PowerShell ISE konak işlemine eklersiniz.

Dördüncü komutta, çalıştırarak Get-Runspace1152 işlem kimliği için kullanılabilir runspace'leri listelersiniz. Meşgul çalışma alanının kimlik numarasını not alırsınız; hata ayıklamak istediğiniz bir betik çalıştırıyor.

Son komutta, komutunu çalıştırarak Debug-Runspaceve id parametresini ekleyerek runspace'i 2 kimliğine göre tanımlayarak, betiği TestWFVar1.ps1çalıştıran açık bir runspace'te hata ayıklamaya başlarsınız. Betikte bir kesme noktası olduğundan hata ayıklayıcı açılır.

Parametreler

-BreakAll

Hata ayıklayıcı eklendiğinde geçerli konumda hemen kesmenizi sağlar.

parametresi yalnızca deneysel bir özellik olarak kullanılabilir. Daha fazla bilgi için bkz. Deneysel özellikleri kullanma.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Cmdlet'i çalıştırmadan önce sizden onay ister.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:True
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Bir çalışma alanının kimlik numarasını belirtir. Runspace kimliklerini göstermek için komutunu çalıştırabilirsiniz Get-Runspace .

Type:Int32
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InstanceId

bir çalışma alanını, komutunu çalıştırarak Get-Runspacegösterebileceğiniz bir GUID olan örnek kimliğine göre belirtir.

Type:Guid
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Name

Bir çalışma alanını adına göre belirtir. Runspaces adlarını göstermek için komutunu çalıştırabilirsiniz Get-Runspace .

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Runspace

Runspace nesnesini belirtir. Bu parametre için değer sağlamanın en basit yolu, filtrelenmiş Get-Runspace komutun sonuçlarını içeren bir değişken belirtmektir.

Type:Runspace
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Cmdlet çalıştırılıyorsa ne olacağını gösterir. Cmdlet çalıştırılmaz.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:True
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Girişler

Runspace

Bir Get-Runspace komutun sonuçlarını Debug-Runspace'e yöneltebilirsiniz.

Notlar

Debug-Runspace , Açık durumdaki çalışma alanları üzerinde çalışır. Bir çalışma alanı durumu Açık durumundan başka bir duruma dönüşürse, bu çalışma alanı otomatik olarak çalışan listeden kaldırılır. Bir çalışma alanı, yalnızca aşağıdaki ölçütleri karşılıyorsa çalışan listeye eklenir.

  • Invoke-Command'dan geliyorsa; diğer bir Invoke-Command ifadeyle guid kimliğine sahiptir.
  • ' den Debug-Runspacegeliyorsa, yani guid Debug-Runspace kimliğine sahiptir.
  • Bir PowerShell iş akışından geliyorsa ve iş akışı iş kimliği geçerli etkin hata ayıklayıcısı iş akışı kimliğiyle aynıysa.