Cara mengontrol PC Anda dari ponsel menggunakan PowerShell Remoting

Pembaharuan Terakhir: 15/10/2025

  • Remoting menggunakan WinRM/WS-Man (HTTP/HTTPS) dan memungkinkan sesi 1-ke-1, 1-ke-banyak, dan persisten dengan kontrol keamanan.
  • Enable-PSRemoting mengonfigurasi layanan, pendengar, dan firewall; HTTPS memerlukan sertifikat yang valid dan kecocokan CN/SAN.
  • Hasilnya dikembalikan secara deserialisasi; metode dipanggil dalam blok skrip jarak jauh dan titik akhir kustom digunakan untuk pendelegasian yang lebih rinci.
PowerShell Remoting

Anda mungkin sudah mengotomatiskan banyak tugas dengan PowerShell secara lokal, tetapi di mana Anda benar-benar PowerShell Remoting membuat perbedaan Ini terjadi ketika Anda menjalankan perintah pada mesin jarak jauh, baik beberapa maupun ratusan, secara interaktif maupun paralel. Teknologi ini, yang tersedia sejak Windows PowerShell 2.0 dan disempurnakan sejak 3.0, didasarkan pada WS-Management (WinRM) dan mengonversi PowerShell dalam saluran manajemen jarak jauh yang kuat, terukur, dan aman.

Pertama-tama, penting untuk memahami dua ide utama: cmdlet dengan Parameter -NamaKomputer (misalnya, Get-Process atau Get-Service) bukanlah jalur jangka panjang yang direkomendasikan oleh Microsoft, dan PowerShell Remoting tidak berfungsi sebagai “peretasan.” Faktanya, menegakkan otentikasi bersama, log audit dan menghormati izin Anda yang biasa, tanpa menyimpan kredensial atau menjalankan apa pun secara ajaib dengan hak istimewa super.

Apa itu PowerShell Remoting dan mengapa menggunakannya?

dengan PowerShell Remoting Anda mungkin mengeksekusi hampir semua perintah dari jarak jauh yang dapat Anda luncurkan dalam sesi lokal, mulai dari meminta layanan hingga menerapkan konfigurasi, dan melakukannya di ratusan komputer sekaligus. Tidak seperti cmdlet yang menerima -ComputerName (banyak yang menggunakan DCOM/RPC), Remoting bepergian melalui WS-Man (HTTP/HTTPS), yang lebih ramah firewall, memungkinkan paralelisme dan memindahkan pekerjaan ke host jarak jauh, bukan klien.

Hal ini menghasilkan tiga keuntungan praktis: kinerja yang lebih baik dalam eksekusi massal, lebih sedikit gesekan dalam jaringan dengan aturan yang ketat dan model keamanan yang konsisten dengan Kerberos/HTTPS. Lebih lanjut, dengan tidak bergantung pada setiap cmdlet untuk mengimplementasikan remote-nya sendiri, Remoting Ini berfungsi untuk skrip atau peran apa pun yang tersedia di tempat tujuan.

Secara default, Windows Server terbaru dilengkapi dengan Remoting yang diaktifkan; di Windows 10/11 kamu mengaktifkannya dengan satu cmdlet. Dan ya, Anda dapat menggunakan kredensial alternatif, sesi persisten, titik akhir kustom, dan banyak lagi.

Catatan: Remoting tidak sama dengan membuka semuanya. Secara default, hanya administrator Mereka dapat terhubung, dan tindakan dieksekusi berdasarkan identitas mereka. Jika Anda membutuhkan delegasi yang lebih detail, titik akhir kustom memungkinkan Anda untuk hanya menampilkan perintah-perintah penting.

Arsitektur Remoting PowerShell

Cara kerjanya di dalam: WinRM, WS-Man dan port

PowerShell Remoting bekerja dalam model klien-server. Klien mengirimkan permintaan WS-Management melalui HTTP (5985/TCP) atau HTTPS (5986/TCP)Pada target, layanan Windows Remote Management (WinRM) mendengarkan, menyelesaikan titik akhir (konfigurasi sesi), dan menghosting sesi PowerShell di latar belakang (proses wsmprovhost.exe), mengembalikan hasil serial ke klien dalam XML melalui SOAP.

Saat pertama kali Anda mengaktifkan Remoting, listener dikonfigurasi, pengecualian firewall yang sesuai dibuka, dan konfigurasi sesi dibuat. Mulai dari PowerShell 6+, beberapa edisi dapat digunakan bersama-sama, dan Aktifkan-PSRemoting Mendaftarkan titik akhir dengan nama yang mencerminkan versi (misalnya, PowerShell.7 dan PowerShell.7.xy).

Konten eksklusif - Klik Disini  Peringatan global untuk kerentanan kritis di Google Chrome: apa yang perlu Anda ketahui dan cara melindungi diri Anda sendiri

Jika Anda hanya mengizinkan HTTPS di lingkungan Anda, Anda dapat membuat pendengar yang aman dengan sertifikat yang dikeluarkan oleh CA tepercaya (disarankan). Alternatif lain adalah menggunakan TrustedHosts secara terbatas dan sadar risiko, untuk skenario grup kerja atau komputer non-domain.

Perhatikan bahwa Powershell Remoting dapat hidup berdampingan dengan cmdlet dengan -ComputerName, tetapi Microsoft mendorong WS-Man sebagai cara standar dan tahan masa depan untuk administrasi jarak jauh.

Mengaktifkan PowerShell Remoting dan Parameter yang Berguna

Di Windows, cukup buka PowerShell sebagai administrator dan jalankan Aktifkan-PSRemotingSistem memulai WinRM, mengonfigurasi autostart, mengaktifkan listener, dan membuat aturan firewall yang sesuai. Pada klien dengan profil jaringan publik, Anda dapat mengizinkannya secara sengaja dengan -LewatiPemeriksaan Profil Jaringan (dan kemudian diperkuat dengan aturan khusus):

Enable-PSRemoting
Enable-PSRemoting -Force
Enable-PSRemoting -SkipNetworkProfileCheck -Force

 

Sintaksnya juga memungkinkan, -Mengonfirmasi y -Bagaimana jika untuk pengendalian perubahan. Ingat: Ini hanya tersedia di Windows, dan Anda harus menjalankan konsol yang ditinggikan. Aturan yang dibuat berbeda antara edisi Server dan Klien, terutama pada jaringan publik, yang secara default terbatas pada subnet lokal kecuali Anda memperluas cakupannya (misalnya, dengan Set-NetFirewallRule).

Untuk membuat daftar konfigurasi sesi yang telah direkam dan mengonfirmasi bahwa semuanya sudah siap, gunakan Dapatkan-PSSessionConfigurationJika titik akhir PowerShell.x dan Workflow muncul, kerangka kerja Remoting beroperasi.

Sesi jarak jauh dengan PowerShell

Mode penggunaan: 1 ke 1, 1 ke banyak, dan sesi persisten

Ketika Anda membutuhkan konsol interaktif di satu komputer, beralihlah ke Masukkan-PSSessionPerintah akan muncul, dan semua yang Anda jalankan akan dikirim ke host jarak jauh. Anda dapat menggunakan kembali kredensial dengan Get-Credential agar tidak perlu memasukkannya berulang-ulang:

$cred = Get-Credential
Enter-PSSession -ComputerName dc01 -Credential $cred
Exit-PSSession

Jika yang Anda cari adalah mengirim perintah ke beberapa komputer sekaligus, alat ini adalah Invoke-Command dengan blok skrip. Secara default, ia meluncurkan hingga 32 koneksi bersamaan (dapat disesuaikan dengan -ThrottleLimit). Hasilnya dikembalikan sebagai objek yang dideserialisasi (tanpa metode “langsung”):

Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service -Name W32Time } -Credential $cred

Perlu memanggil metode seperti .Stop() atau .Start()? Lakukan saja. di dalam blok skrip dalam konteks jarak jauh, bukan objek deserialisasi lokal, dan hanya itu. Jika ada cmdlet yang setara (Stop-Service/Start-Service), biasanya lebih baik menggunakannya demi kejelasan.

Untuk menghindari biaya memulai dan mengakhiri sesi pada setiap panggilan, buatlah PSSession yang Berkelanjutan dan gunakan kembali di beberapa pemanggilan. Gunakan New-PSSession untuk membuat koneksi, dan gunakan Invoke-Command-Session untuk menggunakan kembali terowongan. Jangan lupa untuk menutupnya dengan Remove-PSSession setelah selesai.

Serialisasi, batasan dan praktik yang baik

Detail penting: saat bepergian, objek "+meratakan" dan tiba sebagai snapshot deserialisasi, dengan properti tetapi tanpa metode. Ini memang disengaja dan menghemat bandwidth, tetapi artinya Anda tidak dapat menggunakan anggota yang mengeksekusi logika (seperti .Kill()) pada salinan lokal. Solusinya jelas: panggil metode tersebut. dari jarak jauh dan jika Anda hanya memerlukan bidang tertentu, filter dengan Select-Object untuk mengirim lebih sedikit data.

Konten eksklusif - Klik Disini  Bagaimana cara mencegah kerusakan pada file Anda?

Dalam skrip, hindari Enter-PSSession (dimaksudkan untuk penggunaan interaktif) dan gunakan Invoke-Command dengan blok skrip. Jika Anda mengantisipasi beberapa panggilan atau perlu mempertahankan status (variabel, modul yang diimpor), gunakan sesi persisten dan, jika berlaku, putuskan/sambungkan kembali dengan Disconnect-PSSession/Connect-PSSession di PowerShell 3.0+.

Autentikasi, HTTPS, dan Skenario Off-Domain

Dalam sebuah domain, otentikasi asli adalah Kerberos Dan semuanya mengalir. Ketika perangkat tidak dapat memverifikasi nama server, atau Anda terhubung ke IP CNAME atau alias, Anda memerlukan salah satu dari dua opsi berikut: 1) Pendengar HTTPS dengan sertifikat dikeluarkan oleh CA yang Anda percaya, atau 2) menambahkan tujuan (nama atau IP) ke TrustedHosts dan gunakan kredensialPilihan kedua menonaktifkan autentikasi timbal balik untuk host tersebut, sehingga mengurangi cakupan seminimal mungkin.

Menyiapkan listener HTTPS memerlukan sertifikat (idealnya dari PKI Anda atau CA publik), yang diinstal di penyimpanan tim dan terhubung ke WinRM. Port 5986/TCP kemudian dibuka di firewall dan, dari klien, digunakan. -Gunakan SSL dalam cmdlet jarak jauh. Untuk autentikasi sertifikat klien, Anda dapat memetakan sertifikat ke akun lokal dan menghubungkannya dengan -SertifikatSidik Jari (Enter-PSSession tidak menerima ini secara langsung; buat sesi terlebih dahulu dengan New-PSSession.)

Lompatan kedua dan pendelegasian kredensial

“Double hop” yang terkenal muncul ketika, setelah terhubung ke server, Anda memerlukan server tersebut untuk mengakses sumber ketiga atas nama Anda (misalnya, berbagi SMB). Ada dua pendekatan untuk mengizinkan hal ini: CredSSP dan delegasi Kerberos berbasis sumber daya terbatas.

dengan KredSSP Anda memungkinkan klien dan perantara untuk mendelegasikan kredensial secara eksplisit, dan Anda menetapkan kebijakan (GPO) untuk mengizinkan delegasi ke komputer tertentu. Konfigurasinya cepat, tetapi kurang aman karena kredensial dikirimkan dalam bentuk teks biasa di dalam terowongan terenkripsi. Selalu batasi sumber dan tujuan.

Alternatif yang disukai dalam domain adalah delegasi Kerberos yang dibatasi (delegasi terbatas berbasis sumber daya) dalam AD modern. Hal ini memungkinkan titik akhir untuk mengandalkan penerimaan delegasi dari titik tengah untuk layanan tertentu, sehingga menghindari terungkapnya identitas Anda pada koneksi awal. Memerlukan pengontrol domain terbaru dan RSAT yang diperbarui.

Titik Akhir Kustom (Konfigurasi Sesi)

Salah satu keunggulan Remoting adalah dapat mendaftarkan titik koneksi dengan kemampuan dan batasan yang disesuaikan. Pertama Anda membuat file dengan New-PSSessionConfigurationFile (modul untuk dimuat sebelumnya, fungsi yang terlihat, alias, ExecutionPolicy, LanguageMode, dll.), lalu Anda mendaftarkannya dengan Register-PSSessionConfiguration, tempat Anda dapat mengatur JalankanSebagaiKredensial dan izin (SDDL atau antarmuka GUI dengan -ShowSecurityDescriptorUI).

Untuk pendelegasian yang aman, paparkan hanya apa yang diperlukan dengan -VisibleCmdlets/-VisibleFunctions dan nonaktifkan skrip gratis jika sesuai dengan Mode Bahasa TerbatasBahasa atau NoLanguage. Jika Anda meninggalkan FullLanguage, seseorang dapat menggunakan blok skrip untuk memanggil perintah yang tidak terekspos, yang jika digabungkan dengan RunAs, itu akan menjadi sebuah lubangRancang titik akhir ini dengan cermat dan dokumentasikan cakupannya.

Domain, GPO, dan Groupware

Di AD Anda dapat menerapkan Powershell Remoting dalam skala besar dengan GPO: mengizinkan konfigurasi otomatis pendengar WinRM, atur layanan ke Otomatis, dan buat pengecualian firewall. Ingat bahwa GPO mengubah pengaturan, tetapi tidak selalu mengaktifkan layanan secara instan; terkadang Anda perlu memulai ulang atau memaksakan gpupdate.

Konten eksklusif - Klik Disini  Bagaimana cara menggunakan Norton Mobile Security?

Dalam kelompok kerja (non-domain), konfigurasikan Remoting dengan Aktifkan-PSRemoting, atur TrustedHosts pada klien (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) dan gunakan kredensial lokal. Untuk HTTPS, Anda dapat memasang sertifikat yang ditandatangani sendiri, meskipun disarankan untuk menggunakan CA tepercaya dan validasi nama yang akan Anda gunakan di -ComputerName dalam sertifikat (kecocokan CN/SAN).

Cmdlet kunci dan sintaksis

Sejumlah komando melindungi 90% skenario harianUntuk mengaktifkan/menonaktifkan:

Enable-PSRemoting    
Disable-PSRemoting

Sesi interaktif 1 ke 1 dan keluar:

Enter-PSSession -ComputerName SEC504STUDENT 
Exit-PSSession

1 ke banyak, dengan paralelisme dan kredensial:

Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service W32Time } -Credential $cred

Sesi persisten dan digunakan kembali:

$s = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7
Invoke-Command -Session $s -ScriptBlock { $PSVersionTable }
Remove-PSSession $s

Pengujian dan WinRM berguna:

Test-WSMan -ComputerName host
winrm get winrm/config
winrm enumerate winrm/config/listener
winrm quickconfig -transport:https

Catatan praktis tentang firewall, jaringan dan port

Buka 5985/TCP untuk HTTP dan 5986/TCP untuk HTTPS pada komputer target dan di firewall perantara apa punPada klien Windows, Enable-PSRemoting membuat aturan untuk profil domain dan privat; untuk profil publik, aturan ini terbatas pada subnet lokal kecuali Anda mengubah cakupannya dengan Set-NetFirewallRule -RemoteAddress Any (nilai yang dapat Anda nilai berdasarkan risiko Anda).

Jika Anda menggunakan integrasi SOAR/SIEM yang menjalankan perintah jarak jauh (misalnya dari XSOAR), pastikan server memiliki Resolusi DNS ke host, konektivitas ke 5985/5986, dan kredensial dengan izin lokal yang memadai. Dalam beberapa kasus, autentikasi NTLM/Basic mungkin memerlukan penyesuaian (misalnya, menggunakan pengguna lokal di Basic dengan SSL).

Parameter Enable-PSRemoting (Ringkasan Operasional)

-Konfirmasi meminta konfirmasi sebelum mengeksekusi; -Paksa mengabaikan peringatan dan buat perubahan yang diperlukan; -SkipNetworkProfileCheck mengaktifkan Remoting di jaringan klien publik (dibatasi secara default ke subnet lokal); -WhatIf menunjukkan apa yang akan terjadi tanpa menerapkan perubahan. Selain itu, seperti cmdlet standar lainnya, ini mendukung parameter umum (-Verbose, -ErrorAction, dll.).

Ingat bahwa “Aktifkan” tidak membuat pendengar atau sertifikat HTTPS untuk Anda; jika Anda memerlukan enkripsi ujung ke ujung dari awal dan autentikasi berdasarkan sertifikat, konfigurasikan pendengar HTTPS dan validasi CN/SAN terhadap nama yang akan Anda gunakan di -ComputerName.

Perintah Remoting WinRM dan PowerShell yang Berguna

Beberapa perlengkapan penting di samping tempat tidur untuk sehari-hari:

winrm get winrm/config
winrm enumerate winrm/config/listener
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any
Test-WSMan -ComputerName host -Authentication Default -Credential (Get-Credential)
New-PSSession -ComputerName host 
Enter-PSSession -ComputerName host 
Enable-PSRemoting -SkipNetworkProfileCheck -Force

Saat mengelola Windows dalam skala besar, Remoting memungkinkan Anda beralih dari pendekatan "komputer-ke-komputer" ke pendekatan deklaratif dan aman. Dengan menggabungkan sesi persisten, autentikasi yang kuat (Kerberos/HTTPS), titik akhir terbatas, dan jejak diagnostik yang jelas, Anda mendapatkan kecepatan dan kontrol tanpa mengorbankan keamanan atau audit. Jika Anda juga menstandardisasi aktivasi GPO dan menguasai kasus khusus (TrustedHost, double hop, sertifikat), Anda akan memiliki platform jarak jauh yang solid untuk operasi harian dan respons insiden.

malware tak terlihat
Artikel terkait:
Cara melindungi PC Anda dari malware tak terlihat seperti XWorm dan NotDoor