Enter-PSHostProcess

Bağlan ve yerel bir işlemle etkileşimli bir oturuma girer.

Syntax

Enter-PSHostProcess
     [-Id] <Int32>
     [[-AppDomainName] <String>]
     [<CommonParameters>]
Enter-PSHostProcess
     [-Process] <Process>
     [[-AppDomainName] <String>]
     [<CommonParameters>]
Enter-PSHostProcess
     [-Name] <String>
     [[-AppDomainName] <String>]
     [<CommonParameters>]
Enter-PSHostProcess
     [-HostProcessInfo] <PSHostProcessInfo>
     [[-AppDomainName] <String>]
     [<CommonParameters>]
Enter-PSHostProcess
     -CustomPipeName <String>
     [<CommonParameters>]

Description

Enter-PSHostProcess cmdlet'i bağlanır ve yerel bir işlemle etkileşimli bir oturuma girer. PowerShell 6.2 sürümünden başlayarak, bu cmdlet Windows dışı platformlarda desteklenir.

PowerShell'i barındırmak ve uzak oturum çalıştırmak için yeni bir işlem oluşturmak yerine, uzak, etkileşimli oturum zaten PowerShell çalıştıran mevcut bir işlemde çalıştırılır. Belirtilen bir işlemde uzak oturumla etkileşim kurarken, çalışan çalışma alanlarını numaralandırabilir ve ardından veya Enable-RunspaceDebugkomutunu çalıştırarak Debug-Runspace hata ayıklamak için bir çalışma alanı seçebilirsiniz.

Girmek istediğiniz işlem PowerShell 'i (System.Management.Automation.dll) barındırmalıdır. İşlemin bulunduğu bilgisayarda Yönetici istrators grubunun üyesi olmanız veya işlemi başlatan betiği çalıştıran kullanıcı olmanız gerekir.

Hata ayıklamak için bir çalışma alanı seçtikten sonra, şu anda bir komut çalıştırıyorsa veya hata ayıklayıcıda durdurulmuşsa, çalışma alanı için bir uzaktan hata ayıklama oturumu açılır. Ardından, diğer uzak oturum betiklerinde hata ayıklama yaptığınız gibi runspace betiğinin hatalarını ayıklayabilirsiniz.

Çıkış işlemini iki kez çalıştırarak hata ayıklama oturumundan ve ardından işlemle etkileşimli oturumdan ayırın veya mevcut hata ayıklayıcıdan çık komutunu çalıştırarak betik yürütmeyi durdurun.

Name parametresini kullanarak bir işlem belirtirseniz ve belirtilen ada sahip tek bir işlem bulunursa, işlem girilir. Belirtilen ada sahip birden fazla işlem bulunursa PowerShell bir hata döndürür ve belirtilen adla bulunan tüm işlemleri listeler.

Uzak bilgisayarlardaki işlemlere eklemeyi desteklemek için cmdlet Enter-PSHostProcess , uzak bir PowerShell oturumundaki yerel işleme ekleyebilmeniz için belirtilen uzak bilgisayarda etkinleştirilir.

Örnekler

Örnek Bölüm 1: PowerShell ISE işlemi içinde bir çalışma alanının hatalarını ayıklamaya başlama

Bu örnekte, PowerShell ISE işlemini girmek için PowerShell konsolunun içinden komutunu çalıştıracaksınız Enter-PSHostProcess . Sonuçta elde edilen etkileşimli oturumda, komutunu çalıştırarak Get-Runspacehata ayıklamak istediğiniz bir çalışma alanı bulabilir ve ardından çalışma alanında hata ayıklayabilirsiniz.

PS C:\> Enter-PSHostProcess -Name powershell_ise
[Process:1520]: PS C:\>  Get-Runspace
Id    Name          InstanceId                               State           Availability
--    -------       -----------                              ------          -------------
1     Runspace1     2d91211d-9cce-42f0-ab0e-71ac258b32b5     Opened          Available
2     Runspace2     a3855043-cb16-424a-a616-685360c3763b     Opened          RemoteDebug
3     MyLocalRS     2236dbd8-2105-4dec-a15a-a27d0bfaacb5     Opened          LocalDebug
4     MyRunspace    771356e9-8c44-4b70-9de5-dd17cb41e48e     Opened          Busy
5     Runspace8     3e517382-a97a-49ba-9c3c-fd21f6664288     Broken          None

Örnek bölüm 2: Belirli bir çalışma alanının hatalarını ayıklama

Ardından, başka bir kullanıcının uzun süre çalışan betiğini çalıştıran runspace id 4'ün hatalarını ayıkla. 'den Get-Runspacedöndürülen listeden, çalışma alanı Durumunun Açık ve Kullanılabilirlik'in Meşgul olduğunu, yani çalışma alanının hala uzun süre çalışan betiği çalıştırdığını unutmayın. tarafından Get-Runspace döndürülen runspace nesneleri, varsa çalışan komut yığınının ScriptStackTrace adlı bir NoteProperty'sine de sahiptir.

[Process:1520]: PS C:\>  (Get-Runspace -Id 4).ScriptStackTrace
Command                    Arguments                           Location
-------                    ---------                           --------
MyModuleWorkflowF1         {}                                  TestNoFile3.psm1: line 6
WFTest1                    {}                                  TestNoFile2.ps1: line 14
TestNoFile2.ps1            {}                                  TestNoFile2.ps1: line 22
<ScriptBlock>              {}                                  <No file>

[Process: 1520]: PS C:\>  Debug-Runspace -Id 4
Hit Line breakpoint on 'C:\TestWFVar1.ps1:83'

At C:\TestWFVar1.ps1:83 char:1
+ $scriptVar = "Script Variable"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[Process: 1520]: [RSDBG: 4]: PS C:\>

cmdlet'ini çalıştırarak Debug-Runspace bu runspace ile etkileşimli bir hata ayıklama oturumu başlatın.

Örnek bölüm 3: Hata ayıklama oturumunu bitirme ve çıkış

Hata ayıklamayı tamamladıktan sonra, exit hata ayıklayıcısı komutunu çalıştırarak betiğin hata ayıklayıcı eklenmeden çalışmaya devam etmesi için izin verin. Alternatif olarak, q veya Stop komutlarıyla hata ayıklayıcıdan çıkabilirsiniz.

İşlemde çalışmayı bitirdiğinizde, cmdlet'ini çalıştırarak işlemden Exit-PSHostProcess çıkın. Bu, sizi istemine PS C:\> döndürür.

[Process:346]: [RSDBG: 3]: PS C:\> exit
[Process:1520]: PS C:\>
[Process:1520]: PS C:\>  Exit-PSHostProcess
PS C:\>

Parametreler

-AppDomainName

Atlanırsa bağlanacak bir uygulama etki alanı adı belirtir, DefaultAppDomain kullanır. Uygulama etki alanı adlarını görüntülemek için kullanın Get-PSHostProcessInfo .

Type:String
Position:1
Default value:DefaultAppDomain
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CustomPipeName

Bağlanacak özel adlandırılmış kanal adını alır veya ayarlar. Bu genellikle ile pwsh -CustomPipeNamebirlikte kullanılır.

Bu parametre PowerShell 6.2'de kullanıma sunulmuştur.

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

-HostProcessInfo

PowerShell ile bağlanabilecek bir PSHostProcessInfo nesnesi belirtir. nesnesini almak için kullanın Get-PSHostProcessInfo .

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

-Id

İşlem kimliğine göre bir işlem belirtir. İşlem kimliğini almak için cmdlet'ini Get-Process çalıştırın.

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

-Name

İşlem adına göre bir işlem belirtir. İşlem adı almak için cmdlet'ini Get-Process çalıştırın. Görev Yöneticisi'ndeki bir işlemin Özellikler iletişim kutusundan da işlem adlarını alabilirsiniz.

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

-Process

İşlem nesnesi tarafından bir işlem belirtir. Bu parametreyi kullanmanın en basit yolu, bir değişkene girmek istediğiniz işlemi döndüren bir Get-Process komutun sonuçlarını kaydetmek ve ardından değişkeni bu parametrenin değeri olarak belirtmektir.

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

Girişler

Process

Notlar

Enter-PSHostProcess komutunu çalıştırdığınız PowerShell oturumunun işlemini giremiyor. Ancak, başka bir PowerShell oturumunun veya çalıştırdığınız oturumla aynı anda çalışan bir PowerShell ISE oturumunun Enter-PSHostProcessişlemini girebilirsiniz.

Enter-PSHostProcess yalnızca PowerShell'i barındıran işlemleri girebilir. Başka bir ifadeyle PowerShell altyapısını yüklediler.

İşlemin içinden bir işlemden çıkmak için exit yazın ve Enter tuşuna basın.

PowerShell 7.1'den önce, SSH üzerinden uzaktan iletişim ikinci atlama uzak oturumlarını desteklemedi. Bu özellik WinRM kullanan oturumlarla sınırlıydı. PowerShell 7.1, tüm etkileşimli uzak oturumların içinden çalışmasına izin verirEnter-PSSession.Enter-PSHostProcess