Enable-PSRemoting
Mengonfigurasi komputer untuk menerima perintah jarak jauh.
Sintaks
Default (Default)
Enable-PSRemoting
[-Force]
[-SkipNetworkProfileCheck]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
Cmdlet ini hanya tersedia di platform Windows.
Cmdlet Enable-PSRemoting mengonfigurasi komputer untuk menerima perintah jarak jauh PowerShell yang dikirim dengan menggunakan teknologi WS-Management. Remoting PowerShell berbasis WS-Management saat ini hanya didukung pada platform Windows.
Fitur remoting PowerShell diaktifkan secara default pada platform Windows Server. Anda dapat menggunakan Enable-PSRemoting untuk mengaktifkan remoting PowerShell pada versi Windows lain yang didukung dan untuk mengaktifkan kembali remoting jika dinonaktifkan.
Anda perlu menjalankan perintah ini hanya satu kali pada setiap komputer yang menerima perintah. Anda tidak perlu menjalankannya di komputer yang hanya mengirim perintah. Karena konfigurasi memulai listener, disarankan untuk menjalankannya hanya di tempat yang diperlukan.
Mengaktifkan remoting PowerShell pada versi klien Windows biasanya tidak diizinkan ketika komputer berada di jaringan publik, tetapi Anda dapat melewati pembatasan ini dengan menggunakan parameter SkipNetworkProfileCheck. Untuk informasi selengkapnya, lihat deskripsi parameter
Beberapa penginstalan PowerShell dapat ada berdampingan pada satu komputer. Menjalankan Enable-PSRemoting akan mengonfigurasi titik akhir remote untuk versi instalasi spesifik tempat cmdlet dijalankan. Jadi, jika Anda menjalankan Enable-PSRemoting saat menggunakan PowerShell 6.2, titik akhir jarak jauh akan dikonfigurasi untuk menjalankan PowerShell 6.2. Jika Anda menjalankan Enable-PSRemoting saat menjalankan PowerShell 7-preview, sebuah endpoint remote akan dikonfigurasi yang menjalankan PowerShell 7-preview.
Enable-PSRemoting membuat dua konfigurasi titik akhir pengendalian jarak jauh jika diperlukan. Jika konfigurasi titik akhir sudah ada, konfigurasi tersebut hanya dipastikan diaktifkan. Konfigurasi yang dibuat identik tetapi memiliki nama yang berbeda. Seseorang akan memiliki nama sederhana yang sesuai dengan versi PowerShell yang menghosting sesi. Nama konfigurasi lainnya berisi informasi yang lebih rinci tentang versi PowerShell yang menghosting sesi. Misalnya, saat menjalankan Enable-PSRemoting di PowerShell 6.2, Anda akan mendapatkan dua titik akhir yang dikonfigurasi bernama PowerShell.6, PowerShell.6.2.2. Ini memungkinkan Anda membuat koneksi ke versi host PowerShell 6 terbaru dengan menggunakan nama sederhana PowerShell.6. Atau Anda dapat menyambungkan ke versi host PowerShell tertentu dengan menggunakan nama yang lebih panjang PowerShell.6.2.2.
Untuk menggunakan titik akhir jarak jauh yang baru saja diaktifkan, Anda harus menyebutkannya dengan nama melalui parameter ConfigurationName saat membuat koneksi jarak jauh menggunakan cmdlet Invoke-Command,New-PSSession,Enter-PSSession. Untuk informasi selengkapnya, lihat Contoh 4.
Cmdlet Enable-PSRemoting melakukan operasi berikut:
- Menjalankan cmdlet Set-WSManQuickConfig
, yang melakukan tugas-tugas berikut: - Memulai layanan WinRM.
- Mengatur jenis startup pada layanan WinRM ke Otomatis.
- Membuat pendengar untuk menerima permintaan di alamat IP apa pun.
- Mengaktifkan pengecualian firewall untuk komunikasi WS-Management.
- Membuat konfigurasi titik akhir sesi dengan nama sederhana dan panjang jika diperlukan.
- Mengaktifkan semua konfigurasi sesi.
- Mengubah pendeskripsi keamanan semua konfigurasi sesi untuk mengizinkan akses jarak jauh.
- Memulai ulang layanan WinRM supaya perubahan sebelumnya menjadi efektif.
Untuk menjalankan cmdlet ini pada platform Windows, mulai PowerShell dengan menggunakan opsi Jalankan sebagai administrator. Cmdlet ini tidak tersedia di PowerShell versi Linux atau macOS.
Caution
Cmdlet ini tidak memengaruhi konfigurasi titik akhir jarak jauh yang dibuat oleh Windows PowerShell.
Ini hanya memengaruhi titik akhir yang dibuat dengan PowerShell versi 6 dan yang lebih besar. Untuk mengaktifkan dan menonaktifkan titik akhir pengendalian jarak jauh PowerShell yang dihosting oleh Windows PowerShell, jalankan cmdlet bernama Enable-PSRemoting dari dalam sesi Windows PowerShell.
Untuk informasi selengkapnya tentang menggunakan remoting PowerShell, lihat artikel berikut ini:
Contoh
Contoh 1: Mengonfigurasi komputer untuk menerima perintah jarak jauh
Perintah ini mengonfigurasi komputer untuk menerima perintah jarak jauh.
Enable-PSRemoting
WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and
does not affect Windows PowerShell remoting configurations. Run this cmdlet in Windows
PowerShell to affect all PowerShell remoting configurations.
Contoh 2: Mengonfigurasi komputer untuk menerima perintah jarak jauh tanpa permintaan konfirmasi
Perintah ini mengonfigurasi komputer untuk menerima perintah jarak jauh. Parameter Force menonaktifkan perintah pengguna.
Enable-PSRemoting -Force
WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and
does not affect Windows PowerShell remoting configurations. Run this cmdlet in Windows
PowerShell to affect all PowerShell remoting configurations.
Contoh 3: Mengizinkan akses jarak jauh pada klien
Contoh ini menunjukkan cara mengizinkan akses jarak jauh dari jaringan publik pada versi klien sistem operasi Windows. Nama aturan firewall bisa berbeda untuk versi Windows yang berbeda.
Gunakan Get-NetFirewallRule untuk melihat daftar aturan. Sebelum mengaktifkan aturan firewall, lihat pengaturan keamanan dalam aturan untuk memverifikasi bahwa konfigurasi sesuai untuk lingkungan Anda.
Get-NetFirewallRule -Name 'WINRM*' | Select-Object -Property Name
Name
----
WINRM-HTTP-In-TCP-NoScope
WINRM-HTTP-In-TCP
WINRM-HTTP-Compat-In-TCP-NoScope
WINRM-HTTP-Compat-In-TCP
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any
Secara default, Enable-PSRemoting membuat aturan jaringan yang memungkinkan akses jarak jauh dari jaringan privat dan domain. Perintah ini menggunakan parameter
Parameter SkipNetworkProfileCheck tidak memengaruhi versi server sistem operasi Windows, yang memungkinkan akses jarak jauh dari jaringan publik di subnet lokal yang sama secara default.
Cmdlet Set-NetFirewallRule dalam modul NetSecurity menambahkan aturan firewall yang memungkinkan akses jarak jauh dari jaringan publik ke lokasi jauh mana pun. Ini mencakup lokasi-lokasi di berbagai subnet.
Contoh 4: Membuat sesi remote ke konfigurasi endpoint yang baru diaktifkan
Contoh ini memperlihatkan cara mengaktifkan remoting PowerShell di komputer, menemukan nama titik akhir yang dikonfigurasi, dan membuat sesi remot ke salah satu titik akhir.
Perintah pertama mengaktifkan fitur remoting PowerShell pada komputer.
Perintah kedua mencantumkan konfigurasi titik akhir.
Perintah ketiga membuat sesi PowerShell jarak jauh ke komputer yang sama, dengan menentukan titik akhir PowerShell.7 berdasarkan nama. Sesi jarak jauh akan dihosting dengan versi PowerShell 7 terbaru (7.3.0).
Perintah terakhir mengakses variabel $PSVersionTable dalam sesi jarak jauh untuk menampilkan versi PowerShell yang menghosting sesi.
Enable-PSRemoting -Force
Get-PSSessionConfiguration
$session = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7
Invoke-Command -Session $session -ScriptBlock { $PSVersionTable }
WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and
does not affect Windows PowerShell remoting configurations. Run this cmdlet in Windows
PowerShell to affect all PowerShell remoting configurations.
Name : PowerShell.7
PSVersion : 7.3
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed,
BUILTIN\Remote Management Users AccessAllowed
Name : PowerShell.7.3.0
PSVersion : 7.3
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed,
BUILTIN\Remote Management Users AccessAllowed
Name Value
---- -----
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSEdition Core
PSRemotingProtocolVersion 2.3
Platform Win32NT
SerializationVersion 1.1.0.1
GitCommitId 6.2.2
WSManStackVersion 3.0
PSVersion 6.2.2
OS Microsoft Windows 10.0.18363
Nota
Nama aturan firewall bisa berbeda tergantung pada versi Windows. Gunakan cmdlet Get-NetFirewallRule untuk mencantumkan nama aturan pada sistem Anda.
Parameter
-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 |
-Force
Memaksa perintah untuk dijalankan tanpa meminta konfirmasi pengguna.
Properti parameter
| Jenis: | SwitchParameter |
| 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 |
-SkipNetworkProfileCheck
Menunjukkan bahwa cmdlet ini mengaktifkan remote pada versi klien dari sistem operasi Windows ketika komputer berada di jaringan publik. Parameter ini memungkinkan aturan firewall untuk jaringan publik yang memungkinkan akses jarak jauh hanya dari komputer di subnet lokal yang sama.
Parameter ini tidak memengaruhi versi server sistem operasi Windows, yang, secara default, memiliki aturan firewall subnet lokal untuk jaringan publik. Jika aturan firewall subnet lokal dinonaktifkan pada versi server, Enable-PSRemoting mengaktifkannya kembali, terlepas dari nilai parameter ini.
Untuk menghapus pembatasan subnet lokal dan mengaktifkan akses jarak jauh dari semua lokasi di jaringan publik, gunakan cmdlet
Parameter ini diperkenalkan di PowerShell 3.0.
Properti parameter
| Jenis: | SwitchParameter |
| 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 |
-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
None
Anda tidak dapat menyalurkan objek ke cmdlet ini.
Output
String
Cmdlet ini mengembalikan string yang menjelaskan hasilnya.
Catatan
Cmdlet ini hanya tersedia di platform Windows.
Pada versi server sistem operasi Windows, Enable-PSRemoting membuat aturan firewall untuk jaringan privat dan domain yang memungkinkan akses jarak jauh, dan membuat aturan firewall untuk jaringan publik yang memungkinkan akses jarak jauh hanya dari komputer di subnet lokal yang sama.
Pada versi klien sistem operasi Windows, Enable-PSRemoting membuat aturan firewall untuk jaringan privat dan domain yang memungkinkan akses jarak jauh yang tidak dibatasi. Untuk membuat aturan firewall untuk jaringan publik yang memungkinkan akses jarak jauh dari subnet lokal yang sama, gunakan parameter SkipNetworkProfileCheck.
Pada sistem operasi Windows versi klien atau server, untuk membuat aturan firewall untuk jaringan publik yang menghapus pembatasan subnet lokal dan memungkinkan akses jarak jauh , gunakan cmdlet Set-NetFirewallRule dalam modul NetSecurity untuk menjalankan perintah berikut: Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
Enable-PSRemoting mengaktifkan semua konfigurasi sesi dengan menetapkan nilai dari properti Diaktifkan pada semua konfigurasi sesi menjadi $true.
Enable-PSRemoting menghapus pengaturan Deny_All dan Network_Deny_All. Ini menyediakan akses jarak jauh ke konfigurasi sesi yang sebelumnya diperuntukkan untuk penggunaan lokal.