about_PSSessions
Deskripsi singkat
Menjelaskan sesi Windows PowerShell (PSSessions) dan menjelaskan cara membuat koneksi persisten ke komputer jarak jauh.
Deskripsi panjang
Untuk menjalankan perintah Windows PowerShell di komputer jarak jauh, Anda dapat menggunakan parameter ComputerName cmdlet, atau Anda dapat membuat sesi Windows PowerShell (PSSession) dan menjalankan perintah di PSSession.
Saat Anda membuat PSSession, Windows 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 Windows PowerShell untuk membuat dan memelihara PSSession.
Dimulai di Windows PowerShell 3.0, PSSessions independen dari sesi tempat sesi dibuat. PSSessions aktif dipertahankan di komputer jarak jauh (atau komputer di ujung jarak jauh atau "sisi server" koneksi). Akibatnya, Anda dapat memutuskan sambungan dari PSSession dan menyambungkannya kembali di lain waktu dari komputer yang sama atau dari komputer 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 Windows 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 Windows PowerShell dengan opsi "Jalankan sebagai administrator".
Apa Itu Sesi?
Sesi adalah lingkungan tempat Windows PowerShell berjalan.
Setiap kali Anda memulai Windows 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 Windows 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 menyambungkan kembali ke perintah tersebut, 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, Windows 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, Windows 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 Windows 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 dengan dukungan jarak jauh untuk menjalankan satu perintah atau serangkaian perintah yang tidak terkait pada satu atau banyak komputer.
Saat Anda menggunakan parameter ComputerName atau Invoke-Command
Enter-PSSession
, Windows 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 cmdlet New-PSSession
.
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 setiap komputer jarak jauh.
Cara Mendapatkan PSSessions
Untuk mendapatkan PSSessions yang dibuat dalam 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, dengan namanya, atau dengan ID instansnya (GUID). Perintah berikut mendapatkan PSSession dengan ID-nya dan menyimpannya dalam variabel $ps 01.
$ps01 = Get-PSSession -Id 1
Dimulai di 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
Di 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 terhubung 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
or
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 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
- Putuskan sambungan-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 terputus
- Remove-PSSession: Menghapus PSSessions dalam sesi saat ini
Untuk Informasi Selengkapnya
Untuk informasi selengkapnya tentang PSSessions, lihat about_PSSession_Details.