Bagikan melalui


Receive-PSSession

Mendapatkan hasil perintah dalam sesi yang terputus

Sintaks

Session (Default)

Receive-PSSession
    [-Session] <PSSession>
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Id

Receive-PSSession
    [-Id] <Int32>
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ComputerSessionName

Receive-PSSession
    [-ComputerName] <String>
    -Name <String>
    [-ApplicationName <String>]
    [-ConfigurationName <String>]
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-Credential <PSCredential>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [-Port <Int32>]
    [-UseSSL]
    [-SessionOption <PSSessionOption>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ComputerInstanceId

Receive-PSSession
    [-ComputerName] <String>
    -InstanceId <Guid>
    [-ApplicationName <String>]
    [-ConfigurationName <String>]
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-Credential <PSCredential>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [-Port <Int32>]
    [-UseSSL]
    [-SessionOption <PSSessionOption>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ConnectionUriSessionName

Receive-PSSession
    [-ConnectionUri] <Uri>
    -Name <String>
    [-ConfigurationName <String>]
    [-AllowRedirection]
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-Credential <PSCredential>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [-SessionOption <PSSessionOption>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ConnectionUriInstanceId

Receive-PSSession
    [-ConnectionUri] <Uri>
    -InstanceId <Guid>
    [-ConfigurationName <String>]
    [-AllowRedirection]
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-Credential <PSCredential>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [-SessionOption <PSSessionOption>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InstanceId

Receive-PSSession
    -InstanceId <Guid>
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

SessionName

Receive-PSSession
    -Name <String>
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Deskripsi

Cmdlet ini hanya tersedia di platform Windows.

Cmdlet Receive-PSSession mengambil hasil dari perintah-perintah yang sedang berjalan dalam sesi PowerShell (PSSession) yang telah terputus. Jika sesi saat ini tersambung, Receive-PSSession mendapatkan hasil perintah yang berjalan saat sesi terputus. Jika sesi masih terputus, Receive-PSSession tersambung ke sesi, melanjutkan perintah apa pun yang ditangguhkan, dan mendapatkan hasil perintah yang berjalan dalam sesi.

Cmdlet ini diperkenalkan di PowerShell 3.0.

Anda dapat menggunakan Receive-PSSession selain atau alih-alih perintah Connect-PSSession. Receive-PSSession dapat tersambung ke sesi terputus atau tersambung kembali yang dimulai pada sesi lain atau di komputer lain.

Receive-PSSession bekerja pada PSSessions yang terputus dengan sengaja menggunakan cmdlet Disconnect-PSSession atau parameterInDisconnectedSession Invoke-Command. Atau terputus secara tidak sengaja oleh gangguan jaringan.

Jika Anda menggunakan cmdlet Receive-PSSession untuk menyambungkan ke sesi di mana tidak ada perintah yang berjalan atau ditangguhkan, Receive-PSSession tersambung ke sesi, tetapi tidak mengembalikan output atau kesalahan.

Untuk informasi selengkapnya tentang fitur Sesi Terputus Koneksi, lihat about_Remote_Disconnected_Sessions.

Beberapa contoh menggunakan splatting untuk mengurangi panjang garis dan meningkatkan keterbacaan. Untuk lebih banyak informasi, lihat about_Splatting.

Contoh

Contoh 1: Menyambungkan ke PSSession

Contoh ini tersambung ke sesi di komputer jarak jauh dan mendapatkan hasil perintah yang berjalan dalam sesi.

Receive-PSSession -ComputerName Server01 -Name ITTask

Receive-PSSession menunjukkan komputer jarak jauh dengan parameter ComputerName. Parameter Nama mengidentifikasi sesi ITTask di komputer Server01. Contoh mengambil hasil perintah yang sedang berjalan dalam sesi ITTask.

Karena perintah tidak menggunakan parameter OutTarget, hasilnya muncul di baris perintah.

Contoh 2: Dapatkan hasil semua perintah pada sesi yang terputus

Contoh ini mendapatkan hasil dari semua perintah yang berjalan di semua sesi yang terputus pada dua komputer jarak jauh.

Jika ada sesi yang tidak terputus atau tidak menjalankan perintah, Receive-PSSession tidak tersambung ke sesi dan tidak mengembalikan output atau kesalahan apa pun.

Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession

Get-PSSession menggunakan parameter ComputerName untuk menentukan komputer jarak jauh. Objek dikirimkan melalui saluran ke Receive-PSSession.

Contoh 3: Mendapatkan hasil dari skrip yang berjalan dalam sesi

Contoh ini menggunakan cmdlet Receive-PSSession untuk mendapatkan hasil skrip yang berjalan dalam sesi komputer jarak jauh.

$parms = @{
  ComputerName = "Server01"
  Name = "ITTask"
  OutTarget = "Job"
  JobName = "ITTaskJob01"
  Credential = "Domain01\Admin01"
}
Receive-PSSession @parms
Id     Name            State         HasMoreData     Location
--     ----            -----         -----------     --------
16     ITTaskJob01     Running       True            Server01

Perintah ini menggunakan parameter ComputerName dan Nama untuk mengidentifikasi sesi yang terputus. Ini menggunakan parameter OutTarget dengan nilai Job untuk mengarahkan Receive-PSSession untuk mengembalikan hasil sebagai job. Parameter JobName menentukan nama untuk tugas dalam sesi yang terhubung kembali. Parameter Kredensial menjalankan perintah Receive-PSSession menggunakan izin administrator domain.

Output menunjukkan bahwa Receive-PSSession mengembalikan hasil sebagai tugas dalam sesi saat ini. Untuk mendapatkan hasil pekerjaan, gunakan perintah Receive-Job

Contoh 4: Dapatkan hasil setelah pemadaman jaringan

Contoh ini menggunakan cmdlet Receive-PSSession untuk mendapatkan hasil pekerjaan setelah pemadaman jaringan mengganggu koneksi sesi. PowerShell secara otomatis mencoba menyambungkan kembali sesi sekali per detik selama empat menit ke depan dan meninggalkan upaya hanya jika semua upaya dalam interval empat menit gagal.

PS> $s = New-PSSession -ComputerName Server01 -Name AD -ConfigurationName ADEndpoint
PS> $s

Id  Name   ComputerName    State        ConfigurationName     Availability
--  ----   ------------    -----        -----------------     ------------
8   AD      Server01       Opened       ADEndpoint               Available


PS> Invoke-Command -Session $s -FilePath \\Server12\Scripts\SharedScripts\New-ADResolve.ps1

Running "New-ADResolve.ps1"

# Network outage
# Restart local computer
# Network access is not re-established within 4 minutes


PS> Get-PSSession -ComputerName Server01

Id  Name   ComputerName    State          ConfigurationName      Availability
--  ----   ------------    -----          -----------------      ------------
1  Backup  Server01        Disconnected   Microsoft.PowerShell           None
8  AD      Server01        Disconnected   ADEndpoint                     None


PS> Receive-PSSession -ComputerName Server01 -Name AD -OutTarget Job -JobName AD

Job Id   Name      State         HasMoreData     Location
--       ----      -----         -----------     --------
16       ADJob     Running       True            Server01


PS> Get-PSSession -ComputerName Server01

Id  Name    ComputerName    State         ConfigurationName     Availability
--  ----    ------------    -----         -----------------     ------------
1  Backup   Server01        Disconnected  Microsoft.PowerShell          Busy
8  AD       Server01        Opened        ADEndpoint               Available

cmdlet New-PSSession membuat sesi di komputer Server01 dan menyimpan sesi dalam variabel $s. Variabel $s menampilkan bahwa Status Dibuka dan Ketersediaan Tersedia. Nilai-nilai ini menunjukkan bahwa Anda tersambung ke sesi dan dapat menjalankan perintah dalam sesi.

Cmdlet Invoke-Command menjalankan skrip dalam sesi dalam variabel $s. Skrip mulai berjalan dan mengembalikan data, tetapi terjadi pemadaman jaringan yang mengganggu sesi. Pengguna harus keluar dari sesi dan memulai ulang komputer lokal.

Saat komputer dimulai ulang, pengguna memulai PowerShell dan menjalankan perintah Get-PSSession untuk mendapatkan sesi di komputer Server01. Output menunjukkan bahwa sesi AD masih ada di komputer Server01. Status menunjukkan bahwa sesi AD terputus. Nilai Ketersediaan Tidak Ada, menunjukkan bahwa sesi tidak terhubung ke sesi klien apa pun.

Cmdlet Receive-PSSession menghubungkan kembali ke sesi AD dan mengambil hasil skrip yang dijalankan dalam sesi tersebut. Perintah menggunakan parameter OutTarget untuk meminta hasil pekerjaan yang bernama ADJob. Perintah mengembalikan objek pekerjaan dan output menunjukkan bahwa skrip masih berjalan.

Cmdlet Get-PSSession digunakan untuk memeriksa status pekerjaan. Output mengonfirmasi bahwa cmdlet Receive-PSSession terhubung kembali ke sesi AD , yang kini sudah terbuka dan tersedia untuk perintah. Dan, skrip tersebut melanjutkan eksekusi dan mendapatkan hasil skrip.

Contoh 5: Sambungkan kembali ke sesi yang terputus

Contoh ini menggunakan cmdlet Receive-PSSession untuk menghubungkan kembali ke sesi yang sengaja diputuskan dan mendapatkan hasil dari tugas yang berjalan dalam sesi tersebut.

PS> $parms = @{
      InDisconnectedSession = $true
      ComputerName = "Server01", "Server02", "Server30"
      FilePath = "\\Server12\Scripts\SharedScripts\Get-BugStatus.ps1"
      Name = "BugStatus"
      SessionOption = @{IdleTimeout = 86400000}
      ConfigurationName = "ITTasks"
    }
PS> Invoke-Command @parms
PS> exit


PS> $s = Get-PSSession -ComputerName Server01, Server02, Server30 -Name BugStatus
PS> $s

Id  Name   ComputerName    State         ConfigurationName     Availability
--  ----   ------------    -----         -----------------     ------------
1  ITTask  Server01        Disconnected  ITTasks                       None
8  ITTask  Server02        Disconnected  ITTasks                       None
2  ITTask  Server30        Disconnected  ITTasks                       None


PS> $Results = Receive-PSSession -Session $s
PS> $s

Id  Name   ComputerName    State         ConfigurationName     Availability
--  ----   ------------    -----         -----------------     ------------
1  ITTask  Server01        Opened        ITTasks                  Available
8  ITTask  Server02        Opened        ITTasks                  Available
2  ITTask  Server30        Opened        ITTasks                  Available


PS> $Results

Bug Report - Domain 01
----------------------
ComputerName          BugCount          LastUpdated
--------------        ---------         ------------
Server01              121               Friday, December 30, 2011 5:03:34 PM

Cmdlet Invoke-Command menjalankan skrip pada tiga komputer jarak jauh. Karena skrip mengumpulkan dan meringkas data dari beberapa database, skrip sering kali membutuhkan waktu yang lama untuk diselesaikan. Perintah menggunakan parameter InDisconnectedSession yang memulai skrip dan kemudian segera memutuskan sesi. Parameter SessionOption memperpanjang nilai IdleTimeout dari sesi yang terputus. Sesi yang terputus dianggap tidak aktif sejak terputus. Penting untuk mengatur batas waktu diam cukup lama sehingga perintah dapat diselesaikan dan Anda dapat terhubung kembali ke sesi. Anda dapat mengatur IdleTimeout hanya saat membuat PSSession dan mengubahnya hanya saat Anda memutuskan sambungan darinya. Anda tidak dapat mengubah nilai IdleTimeout saat terhubung ke PSSession atau menerima hasilnya. Setelah menjalankan perintah, pengguna keluar dari PowerShell dan menutup komputer.

Keesokan harinya, pengguna melanjutkan Windows, memulai PowerShell, dan menggunakan Get-PSSession untuk mendapatkan sesi tempat skrip berjalan. Perintah mengidentifikasi sesi dengan nama komputer, nama sesi, dan nama konfigurasi sesi dan menyimpan sesi dalam variabel $s. Nilai variabel $s ditampilkan dan menunjukkan bahwa sesi terputus, tetapi tidak sibuk.

Cmdlet Receive-PSSession terhubung ke sesi dalam variabel $s dan mendapatkan hasilnya. Perintah menyimpan hasil dalam variabel $Results. Variabel $s ditampilkan dan menunjukkan bahwa sesi terhubung dan tersedia untuk perintah.

Hasil skrip dalam variabel $Results ditampilkan di konsol PowerShell. Jika salah satu hasilnya tidak terduga, pengguna dapat menjalankan perintah dalam sesi untuk menyelidiki akar penyebabnya.

Contoh 6: Menjalankan tugas dalam sesi terputus

Contoh ini menunjukkan apa yang terjadi pada tugas yang sedang berlangsung dalam sesi yang terputus.

PS> $s = New-PSSession -ComputerName Server01 -Name Test
PS> $j = Invoke-Command -Session $s { 1..1500 | ForEach-Object {"Return $_"; sleep 30}} -AsJob
PS> $j

Id     Name           State         HasMoreData     Location
--     ----           -----         -----------     --------
16     Job1           Running       True            Server01


PS> $s | Disconnect-PSSession

Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1  Test   Server01        Disconnected  Microsoft.PowerShell          None


PS> $j

Id     Name           State         HasMoreData     Location
--     ----           -----         -----------     --------
16     Job1           Disconnected  True            Server01


PS> Receive-Job $j -Keep

Return 1
Return 2


PS> $s2 = Connect-PSSession -ComputerName Server01 -Name Test
PS> $j2 = Receive-PSSession -ComputerName Server01 -Name Test
PS> Receive-Job $j

Return 3
Return 4

Cmdlet New-PSSession membuat sesi Uji di komputer Server01. Perintah menyimpan sesi dalam variabel $s.

Cmdlet Invoke-Command menjalankan perintah dalam sesi dalam variabel $s. Perintah menggunakan parameter AsJob untuk menjalankan perintah sebagai pekerjaan dan membuat objek pekerjaan dalam sesi saat ini. Perintah mengembalikan objek pekerjaan yang disimpan dalam variabel $j. Variabel $j menampilkan objek pekerjaan.

Objek sesi dalam variabel $s dikirimkan ke alur Disconnect-PSSession dan sesi terputus.

Variabel $j ditampilkan dan menunjukkan efek memutus sambungan objek pekerjaan dalam variabel $j. Status pekerjaan sekarang Terputus.

Receive-Job dijalankan pada pekerjaan dalam variabel $j. Output menunjukkan bahwa pekerjaan mulai menghasilkan output sebelum sesi dan pekerjaan terputus.

Cmdlet Connect-PSSession dijalankan dalam sesi klien yang sama. Perintah tersambung kembali ke sesi Uji di komputer Server01 dan menyimpan sesi dalam variabel $s2.

Cmdlet Receive-PSSession mengambil hasil dari pekerjaan yang sedang berjalan dalam sesi. Karena perintah dijalankan dalam sesi yang sama, Receive-PSSession mengembalikan hasil sebagai pekerjaan secara default dan menggunakan kembali objek pekerjaan yang sama. Perintah menyimpan pekerjaan ke dalam variabel $j2. cmdlet Receive-Job mendapatkan hasil pekerjaan dalam variabel $j.

Parameter

-AllowRedirection

Menunjukkan bahwa cmdlet ini memungkinkan pengalihan koneksi ini ke Pengidentifikasi Sumber Daya Seragam (URI) alternatif.

Saat Anda menggunakan parameter ConnectionURI, tujuan jarak jauh dapat mengembalikan instruksi untuk mengalihkan ke URI yang berbeda. Secara default, PowerShell tidak mengalihkan koneksi, tetapi Anda dapat menggunakan parameter ini untuk mengaktifkannya untuk mengalihkan koneksi.

Anda juga dapat membatasi berapa kali koneksi dialihkan dengan mengubah nilai opsi sesi MaximumConnectionRedirectionCount. Gunakan parameter MaximumRedirection dari cmdlet New-PSSessionOption atau atur properti MaximumConnectionRedirectionCount dari variabel preferensi $PSSessionOption. Nilai defaultnya adalah 5.

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

ConnectionUriSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ConnectionUriInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-ApplicationName

Menentukan aplikasi. Cmdlet ini hanya terhubung ke sesi yang menggunakan aplikasi yang ditentukan.

Masukkan segmen nama aplikasi dari URI koneksi. Misalnya, dalam URI koneksi berikut, WSMan adalah nama aplikasi: http://localhost:5985/WSMAN.

Nama aplikasi dari suatu sesi disimpan di properti Runspace.ConnectionInfo.AppName sesi.

Nilai parameter digunakan untuk memilih dan memfilter sesi. Ini tidak mengubah aplikasi yang digunakan sesi.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

ComputerInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False
ComputerSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False

-Authentication

Menentukan mekanisme yang digunakan untuk mengautentikasi kredensial pengguna dalam perintah untuk menyambungkan kembali ke sesi yang terputus. Nilai yang dapat diterima untuk parameter ini adalah:

  • Bawaan
  • Dasar
  • CREDSSP
  • ringkasan
  • Kerberos
  • Negosiasi
  • NegosiasiDenganKredensialImplisit

Nilai defaultnya adalah Default.

Untuk informasi selengkapnya tentang nilai parameter ini, lihat AuthenticationMechanism Enumeration.

Caution

Autentikasi Penyedia Dukungan Keamanan Kredensial (CredSSP), di mana kredensial pengguna diteruskan ke komputer jarak jauh untuk diautentikasi, dirancang untuk perintah yang memerlukan autentikasi pada lebih dari satu sumber daya, seperti mengakses berbagi jaringan jarak jauh. Mekanisme ini meningkatkan risiko keamanan operasi jarak jauh. Jika komputer jarak jauh disusupi, kredensial yang diteruskan ke komputer jarak jauh dapat digunakan untuk mengontrol sesi jaringan.

Properti parameter

Jenis:AuthenticationMechanism
Nilai default:Default
Nilai yang diterima:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

ComputerInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ComputerSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ConnectionUriSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ConnectionUriInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-CertificateThumbprint

Menentukan sertifikat kunci publik digital (X509) dari akun pengguna yang memiliki izin untuk menyambungkan ke sesi yang terputus. Masukkan sidik jari sertifikat.

Sertifikat digunakan dalam autentikasi berbasis sertifikat klien. Sertifikat hanya dapat dipetakan ke akun pengguna lokal, dan tidak berfungsi dengan akun domain.

Untuk mendapatkan thumbprint sertifikat, gunakan perintah Get-Item atau Get-ChildItem di drive Cert: PowerShell.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

ComputerInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ComputerSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ConnectionUriSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ConnectionUriInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-ComputerName

Menentukan komputer tempat sesi terputus disimpan. Sesi disimpan di komputer yang berada di sisi server, atau di pihak penerima koneksi. Defaultnya adalah komputer lokal.

Ketik nama NetBIOS, alamat IP, atau nama domain yang sepenuhnya memenuhi syarat (FQDN) dari satu komputer. Karakter pengganti tidak diizinkan. Untuk menentukan komputer lokal, ketik nama komputer, titik (.), $Env:COMPUTERNAME, atau localhost.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:Cn

Kumpulan parameter

ComputerInstanceId
Position:0
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False
ComputerSessionName
Position:0
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False

-ConfigurationName

Menentukan nama konfigurasi sesi. Cmdlet ini hanya tersambung ke sesi yang menggunakan konfigurasi sesi yang ditentukan.

Masukkan nama konfigurasi atau URI sumber daya yang sepenuhnya memenuhi syarat untuk konfigurasi sesi. Jika Anda hanya menentukan nama konfigurasi, URI skema berikut akan ditangguhkan sebelumnya:

http://schemas.microsoft.com/powershell.

Nama konfigurasi sesi disimpan di properti ConfigurationName sesi.

Nilai parameter digunakan untuk memilih dan memfilter sesi. Ini tidak mengubah konfigurasi yang digunakan oleh sesi.

Untuk informasi selengkapnya tentang konfigurasi sesi, lihat about_Session_Configurations.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

ComputerInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False
ComputerSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False
ConnectionUriSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False
ConnectionUriInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False

-Confirm

Meminta konfirmasi sebelum menjalankan cmdlet.

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False
Alias:Cf

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-ConnectionUri

Menentukan URI yang menentukan titik akhir koneksi yang digunakan untuk menyambungkan kembali ke sesi yang terputus.

URI harus berkualifikasi lengkap. Format string adalah sebagai berikut:

<Transport>://<ComputerName>:<Port>/<ApplicationName>

Nilai defaultnya adalah sebagai berikut:

http://localhost:5985/WSMAN

Jika Anda tidak menentukan URI koneksi, Anda dapat menggunakan UseSSL , ComputerName, Port, dan parameter ApplicationName untuk menentukan nilai URI koneksi.

Nilai yang valid untuk segmen Transport URI adalah HTTP dan HTTPS. Jika Anda menentukan URI koneksi dengan segmen Transportasi, tetapi tidak menentukan port, sesi dibuat dengan port standar: 80 untuk HTTP dan 443 untuk HTTPS. Untuk menggunakan port default untuk remoting PowerShell, tentukan port 5985 untuk HTTP atau 5986 untuk HTTPS.

Jika komputer tujuan mengalihkan koneksi ke URI yang berbeda, PowerShell mencegah pengalihan kecuali Anda menggunakan parameter AllowRedirection dalam perintah.

Properti parameter

Jenis:Uri
Nilai default:http://localhost:5985/WSMAN
Mendukung wildcard:False
DontShow:False
Alias:URI, CU

Kumpulan parameter

ConnectionUriSessionName
Position:0
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False
ConnectionUriInstanceId
Position:0
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False

-Credential

Menentukan akun pengguna yang memiliki izin untuk menyambungkan ke sesi terputus. Defaultnya adalah pengguna saat ini.

Ketik nama pengguna, seperti User01 atau Domain01\User01, atau masukkan objek PSCredential yang dihasilkan oleh cmdlet Get-Credential. Jika Anda mengetikkan nama pengguna, Anda akan diminta untuk memasukkan kata sandi.

Kredensial disimpan dalam objek PSCredential dan kata sandi disimpan sebagai SecureString.

Nota

Untuk informasi selengkapnya tentang perlindungan data SecureString, lihat Seberapa aman SecureString?.

Properti parameter

Jenis:PSCredential
Nilai default:Current user
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

ComputerInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ComputerSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ConnectionUriSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ConnectionUriInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Id

Menentukan ID sesi yang terputus. Parameter Id hanya berfungsi ketika sesi yang terputus sebelumnya terhubung ke sesi saat ini.

Parameter ini valid, tetapi tidak efektif, ketika sesi disimpan di komputer lokal, tetapi tidak tersambung ke sesi saat ini.

Properti parameter

Jenis:Int32
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

Id
Position:0
Wajib:True
Nilai dari alur:True
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False

-InstanceId

Menentukan ID instans sesi yang terputus. ID instance adalah GUID yang dengan unik mengidentifikasi PSSession di komputer lokal atau jarak jauh. ID instans disimpan di properti instanceId dari PSSession.

Properti parameter

Jenis:Guid
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

ComputerInstanceId
Position:Named
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ConnectionUriInstanceId
Position:Named
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
InstanceId
Position:Named
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-JobName

Menentukan nama yang mudah diingat untuk pekerjaan yang Receive-PSSession kembalikan.

Receive-PSSession mengembalikan tugas ketika nilai parameter OutTarget adalah Tugas, atau tugas yang berjalan dalam sesi terputus dimulai dari sesi saat ini.

Jika pekerjaan yang berjalan dalam sesi terputus dimulai dalam sesi saat ini, PowerShell menggunakan kembali objek pekerjaan asli dalam sesi dan mengabaikan nilai parameter jobName.

Jika pekerjaan yang berjalan dalam sesi terputus dimulai dalam sesi yang berbeda, PowerShell membuat objek pekerjaan baru. Ini menggunakan nama default, tetapi Anda dapat menggunakan parameter ini untuk mengubah nama.

Jika nilai default atau nilai eksplisit parameter OutTarget bukan Pekerjaan, perintah berhasil, tetapi parameter JobName tidak berpengaruh.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Name

Menentukan nama ramah dari sesi yang terputus.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

ComputerSessionName
Position:Named
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ConnectionUriSessionName
Position:Named
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
SessionName
Position:Named
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-OutTarget

Menentukan cara pengembalian hasil sesi. Nilai yang dapat diterima untuk parameter ini adalah:

  • Pekerjaan. Mengembalikan hasil secara asinkron dalam objek pekerjaan. Anda dapat menggunakan parameter JobName untuk menentukan nama atau nama baru untuk pekerjaan tersebut.
  • Host. Mengembalikan hasil ke baris perintah (secara sinkron). Jika perintah sedang dilanjutkan atau hasilnya terdiri dari sejumlah besar objek, respons mungkin tertunda.

Nilai default parameter OutTarget adalah Host. Jika perintah yang diterima selama sesi terputus dimulai dalam sesi saat ini, nilai default parameter OutTarget adalah bentuk saat perintah dimulai. Jika perintah dimulai sebagai sebuah tugas, secara default, itu akan dikembalikan sebagai tugas. Jika tidak, program tersebut dikembalikan ke program host secara default.

Biasanya, program host menampilkan objek yang dikembalikan di baris perintah tanpa penundaan, tetapi perilaku ini dapat bervariasi.

Properti parameter

Jenis:OutTarget
Nilai default:None
Nilai yang diterima:Default, Host, Job
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Port

Menentukan port jaringan komputer jarak jauh yang digunakan untuk menyambungkan kembali ke sesi. Untuk menyambungkan ke komputer jarak jauh, ia harus mendengarkan porta yang digunakan koneksi. Port default adalah 5985, yang merupakan port WinRM untuk HTTP, dan 5986, yang merupakan port WinRM untuk HTTPS.

Sebelum menggunakan port alternatif, Anda harus mengonfigurasi pendengar WinRM di komputer jarak jauh untuk mendengarkan port tersebut. Untuk mengonfigurasi pendengar, ketik dua perintah berikut pada prompt PowerShell:

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse

New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>

Jangan gunakan parameter Port kecuali diperlukan. Port yang diatur dalam perintah berlaku untuk semua komputer atau sesi tempat perintah dijalankan. Pengaturan port alternatif mungkin mencegah perintah berjalan pada semua komputer.

Properti parameter

Jenis:Int32
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

ComputerInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ComputerSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Session

Menentukan sesi yang terputus. Masukkan variabel yang berisi PSSession atau perintah yang membuat atau mendapatkan PSSession, seperti perintah Get-PSSession.

Properti parameter

Jenis:PSSession
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

Session
Position:0
Wajib:True
Nilai dari alur:True
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False

-SessionOption

Menentukan opsi tingkat lanjut untuk sesi tersebut. Masukkan objek SessionOption, seperti yang Anda buat dengan menggunakan cmdlet New-PSSessionOption, atau tabel hash di mana kuncinya adalah nama opsi sesi dan nilainya adalah nilai opsi sesi.

Nilai default untuk opsi ditentukan oleh nilai variabel preferensi $PSSessionOption, jika diatur. Jika tidak, nilai default ditetapkan oleh opsi yang diatur dalam konfigurasi sesi.

Nilai opsi sesi lebih diutamakan daripada nilai default untuk sesi yang diatur dalam variabel preferensi $PSSessionOption dan dalam konfigurasi sesi. Namun, ini tidak diutamakan daripada nilai maksimum, kuota, atau batasan yang ditetapkan dalam konfigurasi sesi.

Untuk deskripsi opsi sesi yang menyertakan nilai default, lihat New-PSSessionOption. Untuk informasi tentang variabel preferensi $PSSessionOption, lihat about_Preference_Variables. Untuk informasi selengkapnya tentang konfigurasi sesi, lihat about_Session_Configurations.

Properti parameter

Jenis:PSSessionOption
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

ComputerInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ComputerSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ConnectionUriSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ConnectionUriInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-UseSSL

Menunjukkan bahwa cmdlet ini menggunakan protokol Secure Sockets Layer (SSL) untuk menyambungkan ke sesi yang terputus. Secara default, SSL tidak digunakan.

WS-Management mengenkripsi semua konten PowerShell yang dikirimkan melalui jaringan. UseSSL adalah perlindungan tambahan yang mengirimkan data melalui koneksi HTTPS daripada koneksi HTTP.

Jika Anda menggunakan parameter ini dan SSL tidak tersedia pada port yang digunakan untuk perintah, perintah gagal.

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

ComputerInstanceId
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
ComputerSessionName
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-WhatIf

Menunjukkan apa yang akan terjadi ketika cmdlet dijalankan. Cmdlet tidak dijalankan.

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False
Alias:wi

Kumpulan 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

PSSession

Anda dapat menyalurkan objek sesi ke cmdlet ini, seperti objek yang dikembalikan oleh cmdlet Get-PSSession.

Int32

Anda dapat menyalurkan ID sesi ke cmdlet ini.

Guid

Anda dapat menyalurkan ID instans sesi dengan cmdlet ini.

String

Anda dapat menyalurkan nama sesi ke cmdlet ini.

Output

Job

Jika nilai atau nilai default parameter OutTarget Job, Receive-PSSession mengembalikan objek pekerjaan.

PSObject

Cmdlet ini mengembalikan hasil perintah yang berjalan dalam sesi terputus, jika ada.

Catatan

PowerShell menyertakan alias berikut untuk Receive-PSSession:

  • Semua platform:
    • rcsn

Cmdlet ini hanya tersedia di platform Windows.

Receive-PSSession hanya mendapatkan hasil dari sesi yang telah terputus. Hanya sesi yang tersambung ke, atau dihentikan, komputer yang menjalankan PowerShell 3.0 atau versi yang lebih baru yang dapat diputus dan disambungkan kembali.

Jika perintah yang berjalan dalam sesi terputus tidak menghasilkan hasil atau jika hasilnya sudah dikembalikan ke sesi lain, Receive-PSSession tidak menghasilkan output apa pun.

Mode buffering output sesi menentukan bagaimana perintah dalam sesi mengelola output saat sesi terputus. Ketika nilai opsi OutputBufferingMode pada sesi adalah Drop dan buffer output penuh, perintah akan mulai menghapus hasil keluaran. Receive-PSSession tidak dapat memulihkan output ini. Untuk informasi selengkapnya tentang opsi mode buffering output, lihat artikel bantuan untuk cmdlet New-PSSessionOption dan New-PSTransportOption.

Anda tidak dapat mengubah nilai batas waktu diam PSSession saat Anda tersambung ke PSSession atau menerima hasil. Parameter SessionOption dari Receive-PSSession memerlukan objek SessionOption yang memiliki nilai IdleTimeout. Namun, nilai IdleTimeout dari objek SessionOption dan nilai IdleTimeout dari variabel $PSSessionOption diabaikan saat terhubung ke PSSession atau menerima hasil.

  • Anda dapat mengatur dan mengubah batas waktu diam dari PSSession ketika Anda membuat PSSession, dengan menggunakan cmdlet New-PSSession atau Invoke-Command, serta ketika Anda memutuskan sambungan dari PSSession.
  • Properti IdleTimeout dari PSSession sangat penting untuk sesi yang terputus karena menentukan berapa lama sesi terputus dipertahankan di komputer jarak jauh. Sesi yang terputus dianggap diam sejak saat mereka terputus, bahkan jika perintah berjalan dalam sesi yang terputus.

Jika Anda memulai pekerjaan dalam sesi jarak jauh dengan menggunakan parameter AsJob cmdlet Invoke-Command, objek pekerjaan dibuat dalam sesi saat ini, meskipun pekerjaan berjalan di sesi jarak jauh. Jika Anda memutuskan sambungan sesi jarak jauh, objek pekerjaan dalam sesi saat ini terputus dari pekerjaan. Objek tugas berisi hasil yang dikembalikan ke dalamnya, tetapi tidak menerima hasil baru dari tugas dalam sesi yang tidak terhubung.

Jika klien yang berbeda terhubung ke sesi yang berisi pekerjaan yang sedang berjalan, hasil yang dikirimkan ke objek pekerjaan asli dalam sesi asli tidak tersedia dalam sesi yang baru tersambung. Hanya hasil yang tidak dikirimkan ke objek pekerjaan asli yang tersedia dalam sesi yang telah disambungkan kembali.

Demikian pula, jika Anda memulai skrip dalam sesi dan kemudian memutuskan sambungan dari sesi, hasil apa pun yang dikirimkan skrip ke sesi sebelum pemutusan sambungan tidak tersedia untuk klien lain yang terhubung ke sesi.

Untuk mencegah hilangnya data dalam sesi yang ingin Anda putuskan sambungannya, gunakan parameter InDisconnectedSession dari cmdlet Invoke-Command. Karena parameter ini mencegah hasil dikembalikan ke sesi saat ini, semua hasil tersedia saat sesi disambungkan kembali.

Anda juga dapat mencegah kehilangan data dengan menggunakan cmdlet Invoke-Command untuk menjalankan perintah Start-Job di sesi jarak jauh. Dalam hal ini, objek pekerjaan dibuat dalam sesi jarak jauh. Anda tidak dapat menggunakan cmdlet Receive-PSSession untuk mendapatkan hasil pekerjaan. Sebagai gantinya, gunakan cmdlet Connect-PSSession untuk menyambungkan ke sesi lalu gunakan cmdlet Invoke-Command untuk menjalankan perintah Receive-Job dalam sesi.

Ketika sesi yang berisi pekerjaan yang sedang berjalan terputus dan kemudian disambungkan kembali, objek pekerjaan asli digunakan kembali hanya jika pekerjaan terputus dan terhubung kembali ke sesi yang sama, dan perintah untuk tersambung kembali tidak menentukan nama pekerjaan baru. Jika sesi disambungkan kembali ke sesi klien yang berbeda atau nama pekerjaan baru ditentukan, PowerShell membuat objek pekerjaan baru untuk sesi baru.

Saat Anda memutuskan sambungan PSSession, status sesi adalah Terputus dan ketersediaan: Tidak ada.

  • Nilai properti Status relatif terhadap sesi saat ini. Nilai Terputus berarti bahwa PSSession tidak tersambung ke sesi saat ini. Namun, tidak berarti bahwa PSSession terputus dari semua sesi. Ini mungkin terhubung ke sesi yang berbeda. Untuk menentukan apakah Anda dapat menyambungkan atau menyambungkan kembali ke sesi, gunakan properti Ketersediaan.
  • Nilai Ketersediaan 'None' menunjukkan bahwa Anda dapat tersambung ke sesi. Nilai Sibuk menunjukkan bahwa Anda tidak dapat tersambung ke PSSession karena sedang terhubung dengan sesi lain.
  • Untuk informasi selengkapnya tentang nilai properti Status dari sesi, lihat RunspaceState.
  • Untuk informasi selengkapnya tentang nilai-nilai dari properti Ketersediaan sesi, lihat RunspaceAvailability.