New-PSSession
Membuat koneksi persisten ke komputer lokal atau jarak jauh.
Sintaks
New-PSSession
[[-ComputerName] <String[]>]
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-Port <Int32>]
[-UseSSL]
[-ApplicationName <String>]
[-ThrottleLimit <Int32>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
New-PSSession
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-ThrottleLimit <Int32>]
[-ConnectionUri] <Uri[]>
[-AllowRedirection]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
New-PSSession
-Credential <PSCredential>
[-Name <String[]>]
[-ConfigurationName <String>]
[-VMId] <Guid[]>
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
-Credential <PSCredential>
[-Name <String[]>]
[-ConfigurationName <String>]
-VMName <String[]>
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[[-Session] <PSSession[]>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-ConfigurationName <String>]
-ContainerId <String[]>
[-RunAsAdministrator]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-UseWindowsPowerShell]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-Port <Int32>]
[-HostName] <String[]>
[-UserName <String>]
[-KeyFilePath <String>]
[-Subsystem <String>]
[-ConnectingTimeout <Int32>]
[-SSHTransport]
[-Options <Hashtable>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
-SSHConnection <Hashtable[]>
[<CommonParameters>]
Deskripsi
New-PSSession
Cmdlet membuat sesi PowerShell (PSSession) di komputer lokal atau jarak jauh. Saat Anda membuat PSSession, PowerShell membuat koneksi persisten ke komputer jarak jauh.
Gunakan PSSession untuk menjalankan beberapa perintah yang berbagi data, seperti fungsi atau nilai variabel. Untuk menjalankan perintah dalam PSSession, gunakan Invoke-Command
cmdlet . Untuk menggunakan PSSession untuk berinteraksi langsung dengan komputer jarak jauh, gunakan Enter-PSSession
cmdlet . Untuk informasi selengkapnya, lihat about_PSSessions.
Anda dapat menjalankan perintah di komputer jarak jauh tanpa membuat PSSession dengan parameter Enter-PSSession
ComputerName atau Invoke-Command
. Saat Anda menggunakan parameter ComputerName , PowerShell membuat koneksi sementara yang digunakan untuk perintah dan kemudian ditutup.
Dimulai dengan PowerShell 6.0 Anda dapat menggunakan Secure Shell (SSH) untuk membuat koneksi ke dan membuat sesi di komputer jarak jauh, jika SSH tersedia di komputer lokal dan komputer jarak jauh dikonfigurasi dengan titik akhir PowerShell SSH. Manfaat dari sesi jarak jauh PowerShell berbasis SSH adalah dapat bekerja di beberapa platform (Windows, Linux, macOS). Untuk sesi berbasis SSH, Anda menggunakan parameter HostName atau SSHConnection yang diatur untuk menentukan komputer jarak jauh dan informasi koneksi yang relevan. Untuk informasi selengkapnya tentang cara menyiapkan remoting PowerShell SSH, lihat PowerShell Remoting Over SSH.
Catatan
Saat menggunakan jarak jauh WSMan dari klien Linux atau macOS dengan titik akhir HTTPS di mana sertifikat server tidak tepercaya (misalnya, sertifikat yang ditandatangani sendiri). Anda harus menyediakan nilai PSSessionOption yang menyertakan nilai SkipCACheck dan SkipCNCheck yang diatur ke $true
untuk berhasil membuat koneksi. Lakukan ini hanya jika Anda berada di lingkungan di mana Anda dapat yakin dengan sertifikat server dan koneksi jaringan ke sistem target.
Contoh
Contoh 1: Membuat sesi di komputer lokal
$s = New-PSSession
Perintah ini membuat PSSession baru di komputer lokal dan menyimpan PSSession dalam $s
variabel.
Anda sekarang dapat menggunakan PSSession ini untuk menjalankan perintah di komputer lokal.
Contoh 2: Membuat sesi di komputer jarak jauh
$Server01 = New-PSSession -ComputerName Server01
Perintah ini membuat PSSession baru di komputer Server01 dan menyimpannya dalam $Server01
variabel.
Saat membuat beberapa objek PSSession , tetapkan ke variabel dengan nama yang berguna. Ini akan membantu Anda mengelola objek PSSession dalam perintah berikutnya.
Contoh 3: Membuat sesi di beberapa komputer
$s1, $s2, $s3 = New-PSSession -ComputerName Server01,Server02,Server03
Perintah ini membuat tiga objek PSSession , satu pada setiap komputer yang ditentukan oleh parameter ComputerName .
Perintah menggunakan operator penugasan (=
) untuk menetapkan objek PSSession baru ke variabel: $s1
, , $s2
$s3
. Ini menetapkan PSSession Server01 ke $s1
, Server02 PSSession ke $s2
, dan Server03 PSSession ke $s3
.
Saat Anda menetapkan beberapa objek ke serangkaian variabel, PowerShell menetapkan setiap objek ke variabel dalam seri masing-masing. Jika ada lebih banyak objek daripada variabel, semua objek yang tersisa ditetapkan ke variabel terakhir. Jika ada lebih banyak variabel daripada objek, variabel yang tersisa kosong ($null
).
Contoh 4: Membuat sesi dengan port tertentu
New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12
Perintah ini membuat PSSession baru di komputer Server01 yang tersambung ke port 8081
server dan menggunakan protokol SSL. PSSession baru menggunakan konfigurasi sesi alternatif yang disebut E12
.
Sebelum mengatur port, Anda harus mengonfigurasi pendengar WinRM di komputer jarak jauh untuk mendengarkan port 8081. Untuk informasi selengkapnya, lihat deskripsi parameter Port .
Contoh 5: Membuat sesi berdasarkan sesi yang sudah ada
New-PSSession -Session $s -Credential Domain01\User01
Perintah ini membuat PSSession dengan properti yang sama dengan PSSession yang ada. Anda dapat menggunakan format perintah ini ketika sumber daya PSSession yang ada habis dan PSSession baru diperlukan untuk membongkar beberapa permintaan.
Perintah menggunakan parameter New-PSSession
Sesi untuk menentukan PSSession yang disimpan dalam $s
variabel. Ini menggunakan kredensial Domain1\Admin01
pengguna untuk menyelesaikan perintah.
Contoh 6: Membuat sesi dengan cakupan global di domain yang berbeda
$global:s = New-PSSession -ComputerName Server1.Domain44.Corpnet.Fabrikam.com -Credential Domain01\Admin01
Contoh ini menunjukkan cara membuat PSSession dengan cakupan global di komputer di domain yang berbeda.
Secara default, objek PSSession yang dibuat di baris perintah dibuat dengan cakupan lokal dan objek PSSession yang dibuat dalam skrip memiliki cakupan skrip.
Untuk membuat PSSession dengan cakupan global, buat PSSession baru lalu simpan PSSession dalam variabel yang dilemparkan ke cakupan global. Dalam hal ini, variabel dilemparkan $s
ke cakupan global.
Perintah menggunakan parameter ComputerName untuk menentukan komputer jarak jauh. Karena komputer berada di domain yang berbeda dari akun pengguna, nama lengkap komputer ditentukan bersama dengan kredensial pengguna.
Contoh 7: Membuat sesi untuk banyak komputer
$rs = Get-Content C:\Test\Servers.txt | New-PSSession -ThrottleLimit 50
Perintah ini membuat PSSession pada masing-masing dari 200 komputer yang tercantum dalam Servers.txt
file dan menyimpan PSSession yang dihasilkan dalam $rs
variabel. Objek PSSession memiliki batas pembatasan 50
.
Anda dapat menggunakan format perintah ini saat nama komputer disimpan dalam database, spreadsheet, file teks, atau format konvertibel teks lainnya.
Contoh 8: Membuat sesi dengan menggunakan URI
$s = New-PSSession -URI http://Server01:91/NewSession -Credential Domain01\User01
Perintah ini membuat PSSession di komputer Server01 dan menyimpannya dalam $s
variabel. Ini menggunakan parameter URI untuk menentukan protokol transportasi, komputer jarak jauh, port, dan konfigurasi sesi alternatif. Ini juga menggunakan parameter Kredensial untuk menentukan akun pengguna yang memiliki izin untuk membuat sesi di komputer jarak jauh.
Contoh 9: Menjalankan pekerjaan latar belakang dalam serangkaian sesi
$s = New-PSSession -ComputerName (Get-Content Servers.txt) -Credential Domain01\Admin01 -ThrottleLimit 16
Invoke-Command -Session $s -ScriptBlock {Get-Process PowerShell} -AsJob
Perintah ini membuat sekumpulan objek PSSession dan kemudian menjalankan pekerjaan latar belakang di setiap objek PSSession .
Perintah pertama membuat PSSession baru pada setiap komputer yang tercantum dalam Servers.txt
file. Ini menggunakan New-PSSession
cmdlet untuk membuat PSSession. Nilai parameter ComputerName adalah perintah yang menggunakan Get-Content
cmdlet untuk mendapatkan daftar nama Servers.txt
komputer file.
Perintah menggunakan parameter Kredensial untuk membuat objek PSSession yang memiliki izin administrator domain, dan menggunakan parameter ThrottleLimit untuk membatasi perintah ke 16
koneksi bersamaan. Perintah menyimpan objek PSSession dalam $s
variabel.
Perintah kedua menggunakan parameter AsJob cmdlet Invoke-Command
untuk memulai pekerjaan latar belakang yang menjalankan Get-Process PowerShell
perintah di setiap objek PSSession di $s
.
Untuk informasi selengkapnya tentang pekerjaan latar belakang PowerShell, lihat about_Jobs dan about_Remote_Jobs.
Contoh 10: Membuat sesi untuk komputer dengan menggunakan URI-nya
New-PSSession -ConnectionURI https://management.exchangelabs.com/Management
Perintah ini membuat objek PSSession yang tersambung ke komputer yang ditentukan oleh URI, bukan nama komputer.
Contoh 11: Buat opsi sesi
$so = New-PSSessionOption -SkipCACheck
New-PSSession -ConnectionUri https://management.exchangelabs.com/Management -SessionOption $so -Credential Server01\Admin01
Contoh ini menunjukkan cara membuat objek opsi sesi dan menggunakan parameter SessionOption .
Perintah pertama menggunakan New-PSSessionOption
cmdlet untuk membuat opsi sesi. Ini menyimpan objek SessionOption yang dihasilkan dalam $so
variabel .
Perintah kedua menggunakan opsi dalam sesi baru. Perintah menggunakan New-PSSession
cmdlet untuk membuat sesi baru. Nilai parameter SessionOption adalah objek SessionOption dalam $so
variabel.
Contoh 12: Membuat sesi menggunakan SSH
New-PSSession -HostName UserA@LinuxServer01
Contoh ini menunjukkan cara membuat PSSession baru menggunakan Secure Shell (SSH). Jika SSH dikonfigurasi pada komputer jarak jauh untuk meminta kata sandi, Maka Anda akan mendapatkan permintaan kata sandi. Jika tidak, Anda harus menggunakan autentikasi pengguna berbasis kunci SSH.
Contoh 13: Membuat sesi menggunakan SSH dan menentukan port dan kunci autentikasi pengguna
New-PSSession -HostName UserA@LinuxServer01:22 -KeyFilePath c:\<path>\userAKey_rsa
Contoh ini menunjukkan cara membuat PSSession menggunakan Secure Shell (SSH). Ini menggunakan parameter Port untuk menentukan port yang akan digunakan dan parameter KeyFilePath untuk menentukan kunci RSA yang digunakan untuk mengidentifikasi dan mengautentikasi pengguna di komputer jarak jauh.
Contoh 14: Membuat beberapa sesi menggunakan SSH
$sshConnections = @(
@{
HostName = 'WinServer1'
UserName = 'domain\userA'
KeyFilePath = 'c:\users\UserA\id_rsa'
}
@{
HostName = 'UserB@LinuxServer5'
KeyFilePath = 'c:\UserB\<path>\id_rsa'
}
)
New-PSSession -SSHConnection $sshConnections
Contoh ini menunjukkan cara membuat beberapa sesi menggunakan Secure Shell (SSH) dan set parameter SSHConnection . Parameter SSHConnection mengambil array tabel hash yang berisi informasi koneksi untuk setiap sesi. Perhatikan bahwa contoh ini mengharuskan komputer jarak jauh target memiliki SSH yang dikonfigurasi untuk mendukung autentikasi pengguna berbasis kunci.
Contoh 15: Membuat sesi baru menggunakan opsi SSH
$options = @{
Port=22
User = 'UserB'
Host = 'LinuxServer5'
}
New-PSSession -KeyFilePath '/Users/UserB/id_rsa' -Options $options
Contoh ini menunjukkan cara membuat sesi berbasis SSH baru komputer berbasis Linux jarak jauh menggunakan opsi SSH. Parameter Opsi mengambil hashtable nilai yang diteruskan sebagai opsi ke perintah yang mendasar ssh
yang menetapkan koneksi ke sistem jarak jauh.
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 cmdlet New-PSSessionOption
atau atur properti MaximumConnectionRedirectionCount dari variabel preferensi $PSSessionOption. Nilai defaultnya adalah 5
.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ApplicationName
Menentukan segmen nama aplikasi dari URI koneksi. Gunakan parameter ini untuk menentukan nama aplikasi saat Anda tidak menggunakan parameter ConnectionURI dalam perintah .
Nilai default adalah nilai $PSSessionApplicationName
variabel preferensi di komputer lokal. Jika variabel preferensi ini tidak ditentukan, nilai defaultnya adalah WSMAN
. Nilai ini sesuai untuk sebagian besar penggunaan. Untuk informasi selengkapnya, lihat about_Preference_Variables.
Layanan WinRM menggunakan nama aplikasi untuk memilih pendengar untuk melayani permintaan koneksi. Nilai parameter ini harus cocok dengan nilai properti URLPrefix pendengar di komputer jarak jauh.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | False |
-Authentication
Menentukan mekanisme yang digunakan untuk mengautentikasi kredensial pengguna. Nilai yang dapat diterima untuk parameter ini adalah:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
Nilai defaultnya adalah Default
.
Untuk informasi selengkapnya tentang nilai parameter ini, lihat Enumerasi AuthenticationMechanism.
Perhatian
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.
Jenis: | AuthenticationMechanism |
Nilai yang diterima: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-CertificateThumbprint
Menentukan sertifikat kunci publik digital (X509) dari akun pengguna yang memiliki izin untuk melakukan tindakan ini. Masukkan thumbprint sertifikat sertifikat.
Sertifikat digunakan dalam autentikasi berbasis sertifikat klien. Mereka hanya dapat dipetakan ke akun pengguna lokal; mereka tidak bekerja dengan akun domain.
Untuk mendapatkan sertifikat, gunakan Get-Item
perintah atau Get-ChildItem
di drive PowerShell Cert:
.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ComputerName
Menentukan array nama komputer. Cmdlet ini membuat koneksi persisten (PSSession) ke komputer yang ditentukan. Jika Anda memasukkan beberapa nama komputer, New-PSSession
buat beberapa objek PSSession , satu untuk setiap komputer. Defaultnya adalah komputer lokal.
Ketik nama NetBIOS, alamat IP, atau nama domain yang sepenuhnya memenuhi syarat dari satu atau beberapa komputer jarak jauh. Untuk menentukan komputer lokal, ketik nama komputer, localhost
, atau titik (.
). Ketika komputer berada di domain yang berbeda dari pengguna, nama domain yang sepenuhnya memenuhi syarat diperlukan.
Anda juga dapat menyalurkan nama komputer, dalam tanda kutip, ke New-PSSession
.
Untuk menggunakan alamat IP dalam nilai parameter ComputerName , perintah harus menyertakan parameter Kredensial . Selain itu, komputer harus dikonfigurasi untuk transportasi HTTPS atau alamat IP komputer jarak jauh harus disertakan dalam daftar WinRM TrustedHosts di komputer lokal. Untuk instruksi menambahkan nama komputer ke daftar TrustedHosts, lihat "Cara Menambahkan Komputer ke Daftar Host Tepercaya" di about_Remote_Troubleshooting.
Untuk menyertakan komputer lokal dalam nilai parameter ComputerName , mulai Windows PowerShell dengan menggunakan opsi Jalankan sebagai administrator.
Jenis: | String[] |
Alias: | Cn |
Position: | 0 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | False |
-ConfigurationName
Menentukan konfigurasi sesi yang digunakan untuk PSSession baru.
Masukkan nama konfigurasi atau URI sumber daya yang sepenuhnya memenuhi syarat untuk konfigurasi sesi. Jika Anda hanya menentukan nama konfigurasi, URI skema berikut ditangguhkan: http://schemas.microsoft.com/PowerShell
.
Konfigurasi sesi untuk sesi terletak di komputer jarak jauh. Jika konfigurasi sesi yang ditentukan tidak ada di komputer jarak jauh, perintah gagal.
Nilai default adalah nilai $PSSessionConfigurationName
variabel preferensi di komputer lokal. Jika variabel preferensi ini tidak diatur, defaultnya adalah Microsoft.PowerShell
. Untuk informasi selengkapnya, lihat about_Preference_Variables.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | False |
-ConnectingTimeout
Menentukan jumlah waktu dalam milidetik yang diizinkan agar koneksi SSH awal selesai. Jika koneksi tidak selesai dalam waktu yang ditentukan, kesalahan akan ditampilkan.
Parameter ini diperkenalkan di PowerShell 7.2
Jenis: | Int32 |
Position: | Named |
Nilai default: | unlimited |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ConnectionUri
Menentukan URI yang menentukan titik akhir koneksi untuk sesi. URI harus sepenuhnya memenuhi syarat. Format string ini adalah sebagai berikut:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Nilai defaultnya adalah sebagai berikut:
http://localhost:5985/WSMAN
Jika Anda tidak menentukan ConnectionURI, Anda dapat menggunakan parameter UseSSL, ComputerName, Port, dan ApplicationName untuk menentukan nilai ConnectionURI.
Nilai yang valid untuk segmen Transportasi URI adalah HTTP dan HTTPS. Jika Anda menentukan URI koneksi dengan segmen Transportasi, tetapi jangan tentukan 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.
Jenis: | Uri[] |
Alias: | URI, CU |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-ContainerId
Menentukan array ID kontainer. Cmdlet ini memulai sesi interaktif dengan setiap kontainer yang ditentukan. docker ps
Gunakan perintah untuk mendapatkan daftar ID kontainer. Untuk informasi selengkapnya, lihat bantuan untuk perintah docker ps .
Jenis: | String[] |
Position: | Named |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-Credential
Menentukan akun pengguna yang memiliki izin untuk melakukan tindakan ini. Defaultnya adalah pengguna saat ini.
Ketik nama pengguna, seperti User01
atau Domain01\User01
, atau masukkan objek PSCredential yang dihasilkan oleh Get-Credential
cmdlet. Jika Anda mengetikkan nama pengguna, Anda akan diminta untuk memasukkan kata sandi.
Kredensial disimpan dalam objek PSCredential dan kata sandi disimpan sebagai SecureString.
Catatan
Untuk informasi selengkapnya tentang perlindungan data SecureString , lihat Seberapa aman SecureString?.
Jenis: | PSCredential |
Position: | Named |
Nilai default: | Current user |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | False |
-EnableNetworkAccess
Menunjukkan bahwa cmdlet ini menambahkan token keamanan interaktif ke sesi loopback. Token interaktif memungkinkan Anda menjalankan perintah dalam sesi loopback yang mendapatkan data dari komputer lain. Misalnya, Anda dapat menjalankan perintah dalam sesi yang menyalin file XML dari komputer jarak jauh ke komputer lokal.
Sesi loopback adalah PSSession yang berasal dan berakhir pada komputer yang sama. Untuk membuat sesi loopback, hilangkan parameter ComputerName atau atur nilainya ke titik (.
), localhost
, atau nama komputer lokal.
Secara default, cmdlet ini membuat sesi loopback dengan menggunakan token jaringan, yang mungkin tidak memberikan izin yang memadai untuk mengautentikasi ke komputer jarak jauh.
Parameter EnableNetworkAccess hanya efektif dalam sesi loopback. Jika Anda menggunakan EnableNetworkAccess saat membuat sesi di komputer jarak jauh, perintah berhasil, tetapi parameter diabaikan.
Anda juga dapat mengaktifkan akses jarak jauh dalam sesi loopback dengan menggunakan CredSSP
nilai parameter Autentikasi , yang mendelegasikan kredensial sesi ke komputer lain.
Untuk melindungi komputer dari akses berbahaya, sesi loopback terputus yang memiliki token interaktif, yang dibuat dengan menggunakan parameter EnableNetworkAccess , hanya dapat disambungkan kembali dari komputer tempat sesi dibuat. Sesi terputus yang menggunakan autentikasi CredSSP dapat disambungkan kembali dari komputer lain. Untuk informasi selengkapnya, lihat Disconnect-PSSession
.
Parameter ini diperkenalkan di PowerShell 3.0.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-HostName
Menentukan array nama komputer untuk koneksi berbasis Secure Shell (SSH). Ini mirip dengan parameter ComputerName kecuali bahwa koneksi ke komputer jarak jauh dibuat menggunakan SSH daripada Windows WinRM.
Parameter ini diperkenalkan di PowerShell 6.0.
Jenis: | String[] |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-KeyFilePath
Menentukan jalur file kunci yang digunakan oleh Secure Shell (SSH) untuk mengautentikasi pengguna di komputer jarak jauh.
SSH memungkinkan autentikasi pengguna dilakukan melalui kunci privat/publik sebagai alternatif untuk autentikasi kata sandi dasar. Jika komputer jarak jauh dikonfigurasi untuk autentikasi kunci, parameter ini dapat digunakan untuk menyediakan kunci yang mengidentifikasi pengguna.
Parameter ini diperkenalkan di PowerShell 6.0.
Jenis: | String |
Alias: | IdentityFilePath |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Name
Menentukan nama yang mudah diingat untuk PSSession.
Anda dapat menggunakan nama untuk merujuk ke PSSession saat Anda menggunakan cmdlet lain, seperti Get-PSSession
dan Enter-PSSession
. Nama ini tidak diharuskan unik untuk komputer atau sesi saat ini.
Jenis: | String[] |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Options
Menentukan hashtable opsi SSH yang digunakan saat menyambungkan ke sesi berbasis SSH jarak jauh. Opsi yang mungkin adalah nilai apa pun yang didukung oleh versi berbasis Unix dari perintah ssh .
Nilai apa pun yang secara eksplisit diteruskan oleh parameter lebih diutamakan daripada nilai yang diteruskan dalam hashtable Opsi . Misalnya, menggunakan parameter Port mengambil alih pasangan kunci-nilai yang Port
diteruskan dalam hashtable Opsi .
Jenis: | Hashtable |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Port
Menentukan port jaringan pada komputer jarak jauh yang digunakan untuk sambungan ini. Untuk tersambung ke komputer jarak jauh, komputer jarak jauh 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 lain, Anda harus mengonfigurasi pendengar WinRM di komputer jarak jauh untuk mendengarkan di port tersebut. Gunakan perintah berikut untuk mengonfigurasi listener:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
Jangan gunakan parameter Port kecuali Anda harus. Pengaturan port dalam perintah berlaku untuk semua komputer atau sesi tempat perintah dijalankan. Pengaturan port alternatif mungkin mencegah perintah berjalan pada semua komputer.
Jenis: | Int32 |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-RunAsAdministrator
Menunjukkan bahwa PSSession berjalan sebagai administrator.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Session
Menentukan array objek PSSession yang digunakan cmdlet ini sebagai model untuk PSSession baru. Parameter ini membuat objek PSSession baru yang memiliki properti yang sama dengan objek PSSession yang ditentukan.
Masukkan variabel yang berisi objek PSSession atau perintah yang membuat atau mendapatkan objek PSSession, seperti New-PSSession
perintah atau Get-PSSession
.
Objek PSSession yang dihasilkan memiliki nama komputer, nama aplikasi, URI koneksi, port, nama konfigurasi, batas pembatasan , dan nilai Secure Sockets Layer (SSL) yang sama dengan aslinya, tetapi memiliki nama tampilan, ID, dan ID instans (GUID) yang berbeda.
Jenis: | PSSession[] |
Position: | 0 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | False |
-SessionOption
Menentukan opsi tingkat lanjut untuk sesi tersebut. Masukkan objek SessionOption, seperti objek yang Anda buat dengan menggunakan New-PSSessionOption
cmdlet, atau tabel hash tempat kunci adalah nama opsi sesi dan nilainya adalah nilai opsi sesi.
Nilai default untuk opsi ditentukan oleh nilai $PSSessionOption
variabel preferensi, 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 $PSSessionOption
variabel preferensi dan dalam konfigurasi sesi. Namun, mereka tidak lebih diutamakan daripada nilai, kuota, atau batas maksimum yang ditetapkan dalam konfigurasi sesi.
Untuk deskripsi opsi sesi yang menyertakan nilai default, lihat New-PSSessionOption
. Untuk informasi tentang $PSSessionOption
variabel preferensi, lihat about_Preference_Variables. Untuk informasi selengkapnya tentang konfigurasi sesi, lihat about_Session_Configurations.
Jenis: | PSSessionOption |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-SSHConnection
Parameter ini mengambil array hashtable di mana setiap hashtable berisi satu atau beberapa parameter koneksi yang diperlukan untuk membuat koneksi Secure Shell (SSH) (HostName, Port, UserName, KeyFilePath).
Parameter koneksi yang dapat di-hash sama dengan yang didefinisikan untuk set parameter SSHHost .
Parameter SSHConnection berguna untuk membuat beberapa sesi di mana setiap sesi memerlukan informasi koneksi yang berbeda.
Parameter ini diperkenalkan di PowerShell 6.0.
Jenis: | Hashtable[] |
Position: | Named |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-SSHTransport
Menunjukkan bahwa koneksi jarak jauh dibuat menggunakan Secure Shell (SSH).
Secara default PowerShell menggunakan Windows WinRM untuk menyambungkan ke komputer jarak jauh. Sakelar ini memaksa PowerShell untuk menggunakan parameter HostName yang ditetapkan untuk membuat koneksi jarak jauh berbasis SSH.
Parameter ini diperkenalkan di PowerShell 6.0.
Jenis: | SwitchParameter |
Nilai yang diterima: | true |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Subsystem
Menentukan subsistem SSH yang digunakan untuk PSSession baru.
Ini menentukan subsistem yang akan digunakan pada target seperti yang didefinisikan dalam sshd_config
. Subsistem memulai versi PowerShell tertentu dengan parameter yang telah ditentukan sebelumnya. Jika subsistem yang ditentukan tidak ada di komputer jarak jauh, perintah gagal.
Jika parameter ini tidak digunakan, defaultnya powershell
adalah subsistem.
Jenis: | String |
Position: | Named |
Nilai default: | powershell |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | False |
-ThrottleLimit
Menentukan jumlah maksimum koneksi bersamaan yang dapat dibuat untuk menjalankan perintah ini.
Jika Anda menghilangkan parameter ini atau memasukkan nilai 0
(nol), nilai default, 32
, digunakan.
Batas pembatasan hanya berlaku untuk perintah saat ini, bukan ke sesi atau ke komputer.
Jenis: | Int32 |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-UserName
Menentukan nama pengguna untuk akun yang digunakan untuk membuat sesi pada komputer jarak jauh. Metode autentikasi pengguna tergantung pada bagaimana Secure Shell (SSH) dikonfigurasi pada komputer jarak jauh.
Jika SSH dikonfigurasi untuk autentikasi kata sandi dasar, Maka Anda akan dimintai kata sandi pengguna.
Jika SSH dikonfigurasi untuk autentikasi pengguna berbasis kunci, jalur file kunci dapat disediakan melalui parameter KeyFilePath dan Anda tidak akan dimintai kata sandi. Perhatikan bahwa jika file kunci pengguna klien terletak di lokasi SSH yang diketahui, parameter KeyFilePath tidak diperlukan untuk autentikasi berbasis kunci, dan autentikasi pengguna terjadi secara otomatis berdasarkan nama pengguna. Lihat dokumentasi SSH tentang autentikasi pengguna berbasis kunci untuk informasi selengkapnya.
Ini bukan parameter yang diperlukan. Jika tidak ada parameter UserName yang ditentukan, maka nama pengguna log on saat ini digunakan untuk koneksi.
Parameter ini diperkenalkan di PowerShell 6.0.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-UseSSL
Menunjukkan bahwa cmdlet ini menggunakan protokol SSL untuk membuat koneksi ke komputer jarak jauh. Secara default, SSL tidak digunakan.
WS-Management mengenkripsi semua konten PowerShell yang dikirimkan melalui jaringan. Parameter UseSSL menawarkan perlindungan tambahan yang mengirim data di seluruh koneksi HTTPS alih-alih koneksi HTTP.
Jika Anda menggunakan parameter ini, tetapi SSL tidak tersedia pada port yang digunakan untuk perintah , perintah gagal.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-UseWindowsPowerShell
Membuat koneksi jarak jauh ke runspace Windows PowerShell baru pada sistem lokal.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-VMId
Menentukan array ID komputer virtual. Cmdlet ini memulai sesi interaktif PowerShell Direct dengan setiap komputer virtual yang ditentukan. Untuk informasi selengkapnya, lihat Otomatisasi dan manajemen Komputer Virtual menggunakan PowerShell.
Gunakan Get-VM
untuk melihat komputer virtual yang tersedia di host Hyper-V Anda.
Jenis: | Guid[] |
Alias: | VMGuid |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-VMName
Menentukan array nama komputer virtual. Cmdlet ini memulai sesi interaktif PowerShell Direct dengan setiap komputer virtual yang ditentukan. Untuk informasi selengkapnya, lihat Otomatisasi dan manajemen Komputer Virtual menggunakan PowerShell.
Gunakan Get-VM
untuk melihat komputer virtual yang tersedia di host Hyper-V Anda.
Jenis: | String[] |
Position: | Named |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
Input
Anda dapat menyalurkan string ke cmdlet ini.
System.URI
Anda dapat menyalurkan URI ke cmdlet ini.
Anda dapat menyalurkan objek sesi ke cmdlet ini.
Output
Catatan
PowerShell menyertakan alias berikut untuk New-PSSession
:
Semua platform:
nsn
Cmdlet ini menggunakan infrastruktur jarak jauh PowerShell. Untuk menggunakan cmdlet ini, komputer lokal dan komputer jarak jauh apa pun harus dikonfigurasi untuk jarak jauh PowerShell. Untuk informasi selengkapnya, lihat about_Remote_Requirements.
Untuk membuat PSSession di komputer lokal, mulai PowerShell dengan opsi Jalankan sebagai administrator .
Setelah selesai dengan PSSession, gunakan
Remove-PSSession
cmdlet untuk menghapus PSSession dan merilis sumber dayanya.Set parameter HostName dan SSHConnection disertakan dimulai dengan PowerShell 6.0. Mereka ditambahkan untuk menyediakan Remoting PowerShell berdasarkan Secure Shell (SSH). Baik SSH maupun PowerShell didukung pada beberapa platform (Windows, Linux, macOS) dan PowerShell remoting akan bekerja melalui platform ini di mana PowerShell dan SSH diinstal dan dikonfigurasi. Ini terpisah dari jarak jauh khusus Windows sebelumnya yang didasarkan pada WinRM dan banyak fitur dan batasan khusus WinRM tidak berlaku. Misalnya, kuota berbasis WinRM, opsi sesi, konfigurasi titik akhir kustom, dan fitur pemutusan sambungan/koneksi ulang tidak didukung. Untuk informasi selengkapnya tentang cara menyiapkan remoting PowerShell SSH, lihat PowerShell Remoting Over SSH.
Executable ssh
mendapatkan data konfigurasi dari sumber berikut dalam urutan berikut:
- opsi baris perintah
- file konfigurasi pengguna (~/.ssh/config)
- file konfigurasi di seluruh sistem (/etc/ssh/ssh_config)
Parameter cmdlet berikut dipetakan ke dalam ssh
parameter dan opsi:
Parameter cmdlet | parameter ssh | opsi ssh -o yang setara |
---|---|---|
-KeyFilePath |
-i <KeyFilePath> |
-o IdentityFile=<KeyFilePath> |
-UserName |
-l <UserName> |
-o User=<UserName> |
-Port |
-p <Port> |
-o Port=<Port> |
-ComputerName -Subsystem |
-s <ComputerName> <Subsystem> |
-o Host=<ComputerName> |
Nilai apa pun yang secara eksplisit diteruskan oleh parameter lebih diutamakan daripada nilai yang diteruskan dalam hashtable Opsi . Untuk informasi selengkapnya tentang ssh_config
file, lihat ssh_config(5).