Enter-PSHostProcess
Menyambungkan ke dan masuk ke dalam sesi interaktif dengan proses lokal.
Sintaks
ProcessIdParameterSet (Default)
Enter-PSHostProcess
[-Id] <Int32>
[[-AppDomainName] <String>]
[<CommonParameters>]
ProcessParameterSet
Enter-PSHostProcess
[-Process] <Process>
[[-AppDomainName] <String>]
[<CommonParameters>]
ProcessNameParameterSet
Enter-PSHostProcess
[-Name] <String>
[[-AppDomainName] <String>]
[<CommonParameters>]
PSHostProcessInfoParameterSet
Enter-PSHostProcess
[-HostProcessInfo] <PSHostProcessInfo>
[[-AppDomainName] <String>]
[<CommonParameters>]
PipeNameParameterSet
Enter-PSHostProcess
-CustomPipeName <String>
[<CommonParameters>]
Deskripsi
Cmdlet Enter-PSHostProcess terhubung ke dan masuk ke sesi interaktif dengan proses lokal. Dimulai di PowerShell 6.2, cmdlet ini didukung pada platform non-Windows.
Alih-alih membuat proses baru untuk menghosting PowerShell dan menjalankan sesi jarak jauh, sesi interaktif jarak jauh dijalankan dalam proses yang sudah ada yang sudah menjalankan PowerShell. Saat berinteraksi dengan sesi jarak jauh pada proses tertentu, Anda dapat menghitung runspace yang sedang berjalan, lalu memilih runspace yang akan di-debug dengan menjalankan Debug-Runspace atau Enable-RunspaceDebug.
Proses yang ingin Anda masukkan harus menghosting PowerShell (System.Management.Automation.dll). Anda harus menjadi anggota grup Administrator di komputer tempat proses ditemukan, atau Anda harus menjadi pengguna yang menjalankan skrip yang memulai proses.
Setelah Anda memilih runspace untuk debug, sesi debug jarak jauh dibuka untuk runspace jika sedang menjalankan perintah atau dihentikan di debugger. Anda kemudian dapat men-debug skrip runspace dengan cara yang sama seperti Anda akan men-debug skrip sesi jarak jauh lainnya.
Lepaskan dari sesi penelusuran kesalahan, lalu sesi interaktif dengan proses, dengan menjalankan keluar dua kali, atau hentikan eksekusi skrip dengan menjalankan perintah keluar debugger yang ada.
Jika Anda menentukan proses dengan menggunakan parameter Nama
Untuk mendukung melampirkan ke proses pada komputer jarak jauh, cmdlet Enter-PSHostProcess diaktifkan di komputer jarak jauh tertentu, sehingga Anda dapat melampirkan ke proses lokal dalam sesi PowerShell jarak jauh.
Contoh
Contoh Bagian 1: Mulai men-debug runspace dalam proses ISE PowerShell
Dalam contoh ini, Anda menjalankan Enter-PSHostProcess dari dalam konsol PowerShell untuk memasuki proses ISE PowerShell. Dalam sesi interaktif yang dihasilkan, Anda dapat menemukan runspace yang ingin Anda debug dengan menjalankan Get-Runspace, lalu men-debug runspace.
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
Contoh bagian 2: Men-debug runspace tertentu
Selanjutnya, debug runspace ID 4, yang menjalankan skrip pengguna lain yang berjalan lama. Dari daftar yang dikembalikan dari Get-Runspace, perhatikan bahwa Status runspace dibuka, dan Ketersediaan Sibuk, yang berarti bahwa runspace masih menjalankan skrip yang berjalan lama. Objek runspace yang dikembalikan oleh Get-Runspace juga memiliki NoteProperty yang disebut ScriptStackTrace dari tumpukan perintah yang sedang berjalan, jika tersedia.
[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:\>
Mulai sesi penelusuran kesalahan interaktif dengan runspace ini dengan menjalankan cmdlet Debug-Runspace.
Contoh bagian 3: Selesaikan sesi penelusuran kesalahan dan keluar
Setelah Anda selesai men-debug, izinkan skrip untuk terus berjalan tanpa debugger yang dilampirkan dengan menjalankan perintah debugger keluar. Atau, Anda dapat keluar dari debugger dengan perintah q atau Stop.
Ketika Anda selesai bekerja dalam proses, keluar dari proses dengan menjalankan cmdlet Exit-PSHostProcess. Ini mengembalikan Anda ke perintah PS C:\>.
[Process:346]: [RSDBG: 3]: PS C:\> exit
[Process:1520]: PS C:\>
[Process:1520]: PS C:\> Exit-PSHostProcess
PS C:\>
Parameter
-AppDomainName
Menentukan nama domain aplikasi yang akan disambungkan jika dihilangkan, menggunakan DefaultAppDomain. Gunakan Get-PSHostProcessInfo untuk menampilkan nama domain aplikasi.
Properti parameter
| Jenis: | String |
| Nilai default: | DefaultAppDomain |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
ProcessIdParameterSet
| Position: | 1 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
ProcessParameterSet
| Position: | 1 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
ProcessNameParameterSet
| Position: | 1 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
PSHostProcessInfoParameterSet
| Position: | 1 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-CustomPipeName
Mendapatkan atau mengatur nama pipa bernama kustom untuk disambungkan. Ini biasanya digunakan bersama dengan pwsh -CustomPipeName.
Parameter ini diperkenalkan di PowerShell 6.2.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
PipeNameParameterSet
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-HostProcessInfo
Menentukan objek PSHostProcessInfo yang dapat dihubungkan dengan PowerShell. Gunakan Get-PSHostProcessInfo untuk mendapatkan objek.
Properti parameter
| Jenis: | PSHostProcessInfo |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
PSHostProcessInfoParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Id
Menentukan proses menurut ID proses. Untuk mendapatkan ID proses, jalankan cmdlet Get-Process.
Properti parameter
| Jenis: | Int32 |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
ProcessIdParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Name
Menentukan proses dengan nama proses. Untuk mendapatkan nama proses, jalankan cmdlet Get-Process. Anda juga bisa mendapatkan nama proses dari kotak dialog Properti dari proses di Pengelola Tugas.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
ProcessNameParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Process
Menentukan proses menurut objek proses. Cara paling sederhana untuk menggunakan parameter ini adalah dengan menyimpan hasil perintah Get-Process yang mengembalikan proses yang ingin Anda masukkan dalam variabel, lalu menentukan variabel sebagai nilai parameter ini.
Properti parameter
| Jenis: | Process |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
ProcessParameterSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | True |
| 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
Process
Catatan
Enter-PSHostProcess tidak dapat memasukkan proses sesi PowerShell tempat Anda menjalankan perintah. Namun, Anda dapat memasukkan proses sesi PowerShell lain, atau sesi ISE PowerShell yang berjalan pada saat yang sama dengan sesi di mana Anda menjalankan Enter-PSHostProcess.
Enter-PSHostProcess hanya dapat memasukkan proses yang menghosting PowerShell. Artinya, mereka telah memuat mesin PowerShell.
Untuk keluar dari proses dari dalam proses, ketik keluar, lalu tekan Enter.
Sebelum PowerShell 7.1, jarak jauh melalui SSH tidak mendukung sesi jarak jauh hop kedua. Kemampuan ini terbatas pada sesi menggunakan WinRM. PowerShell 7.1 memungkinkan Enter-PSSession dan Enter-PSHostProcess bekerja dari dalam sesi jarak jauh interaktif apa pun.