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
   -UseWindowsPowerShell
   [-Name <string[]>]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   [-Port <Int32>]
   [-HostName] <String[]>
   [-UserName <String>]
   [-KeyFilePath <String>]
   [-SSHTransport]
   [-Subsystem <String>]
   [-ConnectingTimeout <int>]
   [<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 SSH Koneksi ion 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 SSH Koneksi ion. Parameter SSH Koneksi ion 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.

Parameter

-AllowRedirection

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

Saat Anda menggunakan parameter Koneksi ionURI, 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 Maximum Koneksi ionRedirectionCount. Gunakan parameter MaximumRedirection cmdlet New-PSSessionOption atau atur properti Maximum Koneksi ionRedirectionCount dari variabel preferensi $PSSessionOption. Nilai defaultnya adalah 5.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationName

Menentukan segmen nama aplikasi dari URI koneksi. Gunakan parameter ini untuk menentukan nama aplikasi saat Anda tidak menggunakan parameter Koneksi ionURI 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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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: .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Aliases:Cn
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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

Type:Int32
Position:Named
Default value:unlimited
Required:False
Accept pipeline input:False
Accept wildcard characters: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 Koneksi ionURI, Anda dapat menggunakan parameter UseSSL, ComputerName, Port, dan ApplicationName untuk menentukan nilai Koneksi ionURI.

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.

Type:Uri[]
Aliases:URI, CU
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 .

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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?.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Aliases:IdentityFilePath
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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:

  1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
  2. 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.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsAdministrator

Menunjukkan bahwa PSSession berjalan sebagai administrator.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:PSSession[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:PSSessionOption
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 SSH Koneksi ion berguna untuk membuat beberapa sesi di mana setiap sesi memerlukan informasi koneksi yang berbeda.

Parameter ini diperkenalkan di PowerShell 6.0.

Type:Hashtable[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Accepted values:true
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:Named
Default value:powershell
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseWindowsPowerShell

Membuat koneksi jarak jauh ke runspace Windows PowerShell baru pada sistem lokal.

Type:SwitchParameter
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:Guid[]
Aliases:VMGuid
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Input

String

Anda dapat menyalurkan string ke cmdlet ini.

System.URI

Anda dapat menyalurkan URI ke cmdlet ini.

PSSession

Anda dapat menyalurkan objek sesi ke cmdlet ini.

Output

PSSession

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 SSH Koneksi ion 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:

  1. opsi baris perintah
  2. file konfigurasi pengguna (~/.ssh/config)
  3. 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>

Untuk informasi selengkapnya tentang ssh_config file, lihat ssh_config(5).