about_PSSessions

Deskripsi singkat

Menjelaskan sesi PowerShell (PSSessions) dan menjelaskan cara membuat koneksi persisten ke komputer jarak jauh.

Deskripsi panjang

Untuk menjalankan perintah PowerShell di komputer jarak jauh, Anda dapat menggunakan parameter ComputerName cmdlet, atau Anda dapat membuat sesi PowerShell (PSSession) dan menjalankan perintah di PSSession.

Saat Anda membuat PSSession, PowerShell membuat koneksi persisten ke komputer jarak jauh. Gunakan PSSession untuk menjalankan serangkaian perintah terkait di komputer jarak jauh. Perintah yang berjalan dalam PSSession yang sama dapat berbagi data, seperti nilai variabel, alias, dan fungsi.

Anda juga dapat membuat PSSession di komputer lokal dan menjalankan perintah di dalamnya. PSSession lokal menggunakan infrastruktur jarak jauh PowerShell untuk membuat dan memelihara PSSession.

Mulai Windows PowerShell 3.0, PSSessions di Windows tidak bergantung pada sesi tempat sesi dibuat. PSSession aktif dipertahankan pada komputer jarak jauh (atau komputer di ujung jarak jauh atau "sisi server" koneksi). Akibatnya, pada Windows Anda dapat memutuskan sambungan dari PSSession pada komputer Windows jarak jauh dan menyambungkannya kembali di lain waktu dari komputer yang sama atau dari komputer Windows yang berbeda.

Topik ini menjelaskan cara membuat, menggunakan, mendapatkan, dan menghapus PSSessions. Untuk informasi selengkapnya, lihat about_PSSession_Details.

Catatan: PSSessions menggunakan infrastruktur jarak jauh PowerShell. Untuk menggunakan PSSessions, komputer lokal dan jarak jauh harus dikonfigurasi untuk jarak jauh. Untuk informasi selengkapnya, lihat about_Remote_Requirements.

Di Windows Vista dan versi Windows yang lebih baru, untuk membuat PSSession di komputer lokal, Anda harus memulai PowerShell dengan opsi "Jalankan sebagai administrator".

Apa itu Sesi?

Sesi adalah lingkungan tempat PowerShell berjalan.

Setiap kali Anda memulai PowerShell, sesi dibuat untuk Anda, dan Anda dapat menjalankan perintah dalam sesi. Anda juga dapat menambahkan item ke sesi Anda, seperti modul dan snap-in, dan Anda dapat membuat item, seperti variabel, fungsi, dan alias. Item ini hanya ada di sesi dan dihapus ketika sesi berakhir.

Anda juga dapat membuat sesi yang dikelola pengguna, yang dikenal sebagai " sesi PowerShell" atau "PSSessions," di komputer lokal atau di komputer jarak jauh. Seperti sesi default, Anda dapat menjalankan perintah dalam PSSession dan menambahkan dan membuat item. Namun, tidak seperti sesi yang dimulai secara otomatis, Anda dapat mengontrol PSSessions yang Anda buat. Anda bisa mendapatkan, membuat, mengonfigurasi, dan menghapusnya, memutuskan dan menyambungkannya kembali, dan menjalankan beberapa perintah dalam PSSession yang sama. PSSession tetap tersedia sampai Anda menghapusnya atau waktu habis.

Biasanya, Anda membuat PSSession untuk menjalankan serangkaian perintah terkait di komputer jarak jauh. Saat Anda membuat PSSession di komputer jarak jauh, PowerShell membuat koneksi persisten ke komputer jarak jauh untuk mendukung sesi.

Jika Anda menggunakan parameter ComputerName dari Invoke-Command cmdlet atau Enter-PSSession untuk menjalankan perintah jarak jauh atau untuk memulai sesi interaktif, PowerShell membuat sesi sementara di komputer jarak jauh dan menutup sesi segera setelah perintah selesai atau segera setelah sesi interaktif berakhir. Anda tidak dapat mengontrol sesi sementara ini, dan Anda tidak dapat menggunakannya untuk lebih dari satu perintah atau satu sesi interaktif.

Di PowerShell, "sesi saat ini" adalah sesi tempat Anda bekerja. "Sesi saat ini" dapat merujuk ke sesi apa pun, termasuk sesi sementara atau PSSession.

Mengapa Menggunakan PSSession?

Gunakan PSSession saat Anda memerlukan koneksi persisten ke komputer jarak jauh. Dengan PSSession, Anda dapat menjalankan serangkaian perintah yang berbagi data, seperti nilai variabel, konten fungsi, atau definisi alias.

Anda dapat menjalankan perintah jarak jauh tanpa membuat PSSession. Gunakan parameter ComputerName cmdlet yang diaktifkan dari jarak jauh untuk menjalankan satu perintah atau serangkaian perintah yang tidak terkait pada satu atau banyak komputer.

Saat Anda menggunakan parameter ComputerName dari Invoke-Command atau Enter-PSSession, PowerShell membuat koneksi sementara ke komputer jarak jauh lalu menutup koneksi segera setelah perintah selesai. Elemen data apa pun yang Anda buat hilang saat koneksi ditutup.

Cmdlet lain yang memiliki parameter ComputerName , seperti Get-Eventlog dan Get-WmiObject, gunakan teknologi jarak jauh yang berbeda untuk mengumpulkan data. Tidak ada yang membuat koneksi persisten seperti PSSession.

Cara Membuat PSSession

Untuk membuat PSSession, gunakan New-PSSession cmdlet . Untuk membuat PSSession di komputer jarak jauh, gunakan parameter ComputerName dari New-PSSession cmdlet .

Misalnya, perintah berikut membuat PSSession baru di komputer Server01.

New-PSSession -ComputerName Server01

Saat Anda mengirimkan perintah, New-PSSession membuat PSSession dan mengembalikan objek yang mewakili PSSession. Anda dapat menyimpan objek dalam variabel saat membuat PSSession, atau Anda dapat menggunakan Get-PSSession perintah untuk mendapatkan PSSession di lain waktu.

Misalnya, perintah berikut membuat PSSession baru di komputer Server01 dan menyimpan objek yang dihasilkan dalam variabel $ps.

$ps = New-PSSession -ComputerName Server01

Cara Membuat PSSessions di Beberapa Komputer

Untuk membuat PSSessions di beberapa komputer, gunakan parameter ComputerName cmdlet New-PSSession . Ketik nama komputer jarak jauh dalam daftar yang dipisahkan koma.

Misalnya, untuk membuat PSSessions di komputer Server01, Server02, dan Server03, ketik:

New-PSSession -ComputerName Server01, Server02, Server03

New-PSSession membuat satu PSSession pada masing-masing komputer jarak jauh.

Cara Mendapatkan PSSessions

Untuk mendapatkan PSSessions yang dibuat di sesi Anda saat ini, gunakan Get-PSSession cmdlet tanpa parameter ComputerName . Get-PSSession mengembalikan jenis objek yang sama yang New-PSSession dikembalikan.

Perintah berikut mendapatkan semua PSSessions yang dibuat dalam sesi saat ini.

Get-PSSession

Tampilan default PSSessions menunjukkan ID dan nama tampilan defaultnya. Anda dapat menetapkan nama tampilan alternatif saat membuat sesi.

Id   Name       ComputerName    State    ConfigurationName
---  ----       ------------    -----    ---------------------
1    Session1   Server01        Opened   Microsoft.PowerShell
2    Session2   Server02        Opened   Microsoft.PowerShell
3    Session3   Server03        Opened   Microsoft.PowerShell

Anda juga dapat menyimpan PSSessions dalam variabel. Perintah berikut mendapatkan PSSessions dan menyimpannya dalam variabel $ps 123.

$ps123 = Get-PSSession

Saat menggunakan cmdlet PSSession, Anda dapat merujuk ke PSSession dengan ID-nya, berdasarkan namanya, atau dengan ID instansnya (GUID). Perintah berikut mendapatkan PSSession dengan ID-nya dan menyimpannya dalam variabel $ps 01.

$ps01 = Get-PSSession -Id 1

Mulai Windows PowerShell 3.0, PSSessions dipertahankan di komputer jarak jauh. Untuk mendapatkan PSSessions yang Anda buat di komputer jarak jauh tertentu, gunakan parameter ComputerName cmdlet Get-PSSession . Perintah berikut mendapatkan PSSessions yang Anda buat di komputer jarak jauh Server01. Ini termasuk PSSessions yang dibuat dalam sesi saat ini dan di sesi lain di komputer lokal atau komputer lain.

Get-PSSession -ComputerName Server01

Dalam Windows PowerShell 2.0, Get-PSSession hanya mendapatkan PSSessions yang dibuat dalam sesi saat ini. Ini tidak mendapatkan PSSessions yang dibuat di sesi lain atau di komputer lain, bahkan jika sesi tersambung ke dan menjalankan perintah di komputer lokal.

Cara Menjalankan Perintah dalam PSSession

Untuk menjalankan perintah dalam satu atau beberapa PSSessions, gunakan Invoke-Command cmdlet . Gunakan parameter Sesi untuk menentukan PSSessions dan parameter ScriptBlock untuk menentukan perintah.

Misalnya, untuk menjalankan Get-ChildItem perintah ("dir") di masing-masing dari tiga PSSessions yang disimpan dalam variabel $ps 123, ketik:

Invoke-Command -Session $ps123 -ScriptBlock { Get-ChildItem }

Cara Menghapus PSSessions

Setelah selesai dengan PSSession, gunakan Remove-PSSession cmdlet untuk menghapus PSSession dan untuk merilis sumber daya yang digunakannya.

Remove-PSSession -Session $ps

atau

Remove-PSSession -Id 1

Untuk menghapus PSSession dari komputer jarak jauh, gunakan parameter ComputerName cmdlet Remove-PSSession .

Remove-PSSession -ComputerName Server01 -Id 1

Jika Anda tidak menghapus PSSession, PSSession tetap tersedia untuk digunakan sampai waktu habis.

Anda juga dapat menggunakan parameter IdleTimeout cmdlet New-PSSessionOption untuk mengatur waktu kedaluwarsa untuk PSSession yang menganggur. Untuk informasi selengkapnya, lihat New-PSSessionOption.

Cmdlet PSSession

Untuk daftar cmdlet PSSession, ketik:

Get-Help *-PSSession
  • Connect-PSSession: Menyambungkan PSSession ke sesi saat ini
  • Disconnect-PSSession: Memutuskan sambungan PSSession dari sesi saat ini
  • Enter-PSSession: Memulai sesi interaktif
  • Exit-PSSession: Mengakhiri sesi interaktif
  • Get-PSSession: Mendapatkan PSSessions dalam sesi saat ini
  • New-PSSession: Membuat PSSession baru di komputer lokal atau jarak jauh
  • Receive-PSSession: Mendapatkan hasil perintah yang berjalan dalam sesi yang terputus
  • Remove-PSSession: Menghapus PSSessions di sesi saat ini

Catatan

Sesi terputus hanya didukung pada Windows. Connect-PSSessionCmdlet , Disconnect-PSSession, dan Receive-PSSession hanya tersedia di Windows. Untuk informasi selengkapnya tentang sesi yang terputus, lihat about_Remote_Disconnected_Session

Untuk informasi lebih lanjut

Untuk informasi selengkapnya tentang PSSessions, lihat about_PSSession_Details.

Lihat juga