Enable-PSRemoting

Mengonfigurasi komputer untuk menerima perintah jarak jauh.

Sintaks

Enable-PSRemoting
      [-Force]
      [-SkipNetworkProfileCheck]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Deskripsi

Cmdlet ini hanya tersedia di platform Windows.

Enable-PSRemoting Cmdlet mengonfigurasi komputer untuk menerima perintah jarak jauh PowerShell yang dikirim dengan menggunakan teknologi WS-Management. WS-Management remoting PowerShell berbasis saat ini hanya didukung pada platform Windows.

Akses jauh PowerShell diaktifkan secara default pada platform Windows Server. Anda dapat menggunakan Enable-PSRemoting untuk mengaktifkan PowerShell jarak jauh pada versi Windows lain yang didukung dan untuk mengaktifkan kembali jarak jauh jika menjadi dinonaktifkan.

Anda harus menjalankan perintah ini hanya satu kali pada setiap komputer yang akan menerima perintah. Anda tidak perlu menjalankannya pada komputer yang hanya mengirim perintah. Karena konfigurasi memulai pendengar untuk menerima koneksi jarak jauh, sangat bijaksana untuk menjalankannya hanya jika diperlukan.

Mengaktifkan PowerShell jarak jauh pada versi klien Windows ketika komputer berada di jaringan publik biasanya tidak diizinkan, tetapi Anda dapat melewati pembatasan ini dengan menggunakan parameter SkipNetworkProfileCheck . Untuk informasi selengkapnya, lihat deskripsi parameter SkipNetworkProfileCheck .

Beberapa penginstalan PowerShell bisa ada berdampingan pada satu komputer. Menjalankan Enable-PSRemoting akan mengonfigurasi titik akhir jarak jauh untuk versi penginstalan tertentu tempat Anda menjalankan cmdlet. Jadi, jika Anda menjalankan Enable-PSRemoting saat menjalankan PowerShell 6.2, titik akhir jarak jauh akan dikonfigurasi yang menjalankan PowerShell 6.2. Jika Anda menjalankan Enable-PSRemoting saat menjalankan pratinjau PowerShell 7, titik akhir jarak jauh akan dikonfigurasi yang menjalankan pratinjau PowerShell 7.

Enable-PSRemoting membuat dua konfigurasi titik akhir jarak jauh sesuai kebutuhan. 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 lebih rinci tentang versi PowerShell yang menghosting sesi. Misalnya, saat berjalan 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 diaktifkan, Anda harus menentukannya berdasarkan nama dengan parameter ConfigurationName saat membuat koneksi jarak jauh menggunakan Invoke-Commandcmdlet ,New-PSSession,Enter-PSSession . Untuk informasi selengkapnya, lihat Contoh 4.

Enable-PSRemoting Cmdlet melakukan operasi berikut:

  • Menjalankan cmdlet Set-WSManQuickConfig , yang melakukan 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 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 untuk membuat perubahan sebelumnya 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.

Perhatian

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 jarak jauh PowerShell yang dihosting oleh Windows PowerShell, jalankan Enable-PSRemoting cmdlet dari dalam sesi Windows PowerShell.

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 Paksa menekan permintaan 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 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 SkipNetworkProfileCheck untuk mengizinkan akses jarak jauh dari jaringan publik di subnet lokal yang sama. Perintah menentukan parameter Paksa untuk menekan pesan konfirmasi.

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 dari lokasi jarak jauh mana pun. Ini termasuk lokasi di subnet yang berbeda.

Contoh 4: Membuat sesi jarak jauh ke konfigurasi titik akhir yang baru diaktifkan

Contoh ini memperlihatkan cara mengaktifkan akses jauh PowerShell di komputer, menemukan nama titik akhir yang dikonfigurasi, dan membuat sesi jarak jauh ke salah satu titik akhir.

Perintah pertama memungkinkan PowerShell remoting pada komputer.

Perintah kedua mencantumkan konfigurasi titik akhir.

Perintah ketiga membuat sesi PowerShell jarak jauh ke komputer yang sama, menentukan titik akhir PowerShell.6 berdasarkan nama. Sesi jarak jauh akan dihosting dengan versi PowerShell 6 terbaru (6.2.2).

Perintah terakhir mengakses $PSVersionTable variabel dalam sesi jarak jauh untuk menampilkan versi PowerShell yang menghosting sesi.

Enable-PSRemoting -Force

Get-PSSessionConfiguration

$session = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.6

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.6
PSVersion     : 6.2
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
                BUILTIN\Remote Management Users AccessAllowed

Name          : PowerShell.6.2.2
PSVersion     : 6.2
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

Catatan

Nama aturan firewall bisa berbeda tergantung pada versi Windows. Get-NetFirewallRule Gunakan cmdlet untuk mencantumkan nama aturan pada sistem Anda.

Parameter

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

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

-Force

Memaksa perintah untuk berjalan tanpa meminta konfirmasi pengguna.

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

-SkipNetworkProfileCheck

Menunjukkan bahwa cmdlet ini memungkinkan akses jauh pada versi klien 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 aktifkan kembali, terlepas dari nilai parameter ini.

Untuk menghapus pembatasan subnet lokal dan mengaktifkan akses jarak jauh dari semua lokasi di jaringan publik, gunakan Set-NetFirewallRule cmdlet dalam modul NetSecurity .

Parameter ini diperkenalkan di PowerShell 3.0.

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

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

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

Input

None

Anda tidak dapat menyalurkan input 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 buat 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 versi klien atau server sistem operasi Windows, untuk membuat aturan firewall untuk jaringan publik yang menghapus pembatasan subnet lokal dan memungkinkan akses jarak jauh , gunakan Set-NetFirewallRule cmdlet dalam modul NetSecurity untuk menjalankan perintah berikut: Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

Enable-PSRemoting mengaktifkan semua konfigurasi sesi dengan mengatur nilai properti Diaktifkan dari semua konfigurasi sesi ke $True.

Enable-PSRemoting menghapus pengaturan Deny_All dan Network_Deny_All . Ini menyediakan akses jarak jauh ke konfigurasi sesi yang dicadangkan untuk penggunaan lokal.