Windows Server 2025 / Menggunakan PowerShell remoting melalui WinRM

PowerShell remoting memungkinkan Anda mengirim perintah ke server lain atau membuka konsol interaktif di sana. Pada Windows Server 2025, periksa layanan Windows Remote Management (WinRM), endpoint sesi, dan autentikasi sebelum menggunakan Enter-PSSession atau Invoke-Command.

Pisahkan konfigurasi server dari koneksi klien

Konfigurasikan penerimaan koneksi dari konsol FS1, lalu jalankan perintah koneksi pada PC pengelolaan. Lokasi yang tertukar dapat membuka listener yang tidak diperlukan atau mengueri komputer yang salah. Prosedur ini memakai Windows PowerShell 5.1 melalui WinRM, bukan transport SSH (Secure Shell). Jalankan instruksi secara interaktif dan per bagian, jangan menggabungkan seluruh blok menjadi satu skrip.

  • Pastikan identitas FS1 dan akun administrator yang valid untuk server tersebut.
  • Gunakan jaringan pengelolaan terisolasi yang disiapkan untuk lab.
  • Pertahankan akses konsol FS1 untuk memeriksa keadaan dan memulihkan akses.

Di FS1, buka Windows PowerShell dengan Run as administrator dan catat kondisi awal; remoting mungkin sudah dikonfigurasi. Get-Service menunjukkan status layanan, Get-PSSessionConfiguration menampilkan endpoint PowerShell, dan Test-WSMan localhost memeriksa respons WinRM lokal. Pada konfigurasi yang berfungsi, harapkan WinRM berstatus Running, konfigurasi sesi tersedia, dan respons WS-Management alih-alih kesalahan. Pemeriksaan lokal ini tidak membuktikan keterjangkauan dari klien atau hak klien untuk menjalankan perintah:

Get-Service WinRM
Get-PSSessionConfiguration
Test-WSMan localhost

Konfigurasikan server hanya bila diperlukan

Jika penerimaan koneksi belum disiapkan, periksa hostname pada konsol FS1 sebelum menjalankan Enable-PSRemoting. Perintah ini dapat memulai atau memulai ulang WinRM, membuat listener, mengaktifkan konfigurasi sesi, serta mengubah aturan firewall. -Force melewati pertanyaan konfirmasi, tetapi tidak menggantikan hak administrator atau memperbaiki lokasi eksekusi yang salah. PC yang hanya mengirim perintah tidak memerlukan konfigurasi penerimaan ini.

hostname
Enable-PSRemoting -Force
Test-WSMan localhost

Batasi sumber akses ke PC atau subnet pengelolaan yang diperlukan. Di wf.msc → Inbound Rules, periksa aturan WinRM, profil aktif, port, dan alamat jarak jauh; periksa juga aturan lain yang mungkin mengizinkan cakupan lebih luas. Jangan menonaktifkan firewall atau mengubah profil jaringan sembarangan untuk mengatasi kesalahan. Port bawaan WinRM adalah TCP 5985 untuk HTTP dan TCP 5986 untuk HTTPS.

Adanya listener HTTP tidak otomatis berarti pesan yang sudah diautentikasi dikirim tanpa perlindungan. Dengan Kerberos atau NTLM (NT LAN Manager), WinRM mengenkripsi pesan setelah autentikasi; HTTPS menambahkan perlindungan transport dan memerlukan konfigurasi serta verifikasi sertifikat yang sesuai. Identitas server tetap harus diperiksa secara terpisah. Pelajari autentikasi dan keamanan pesan WinRM sebelum memilih rancangan koneksi.

Gunakan nama server setelah domain berfungsi

Alternatif ini mensyaratkan PC dan FS1 sudah bergabung dengan domain yang sama, sistem nama domain (DNS, Domain Name System) dan sinkronisasi waktu berfungsi, serta akun memiliki izin. Jangan mengharapkan keberhasilan sebelum domain disiapkan. Enter-PSSession membuka sesi interaktif. Jalankan koneksi, tunggu prompt menunjukkan server tujuan, lalu masukkan hostname, whoami, dan Exit-PSSession satu per satu.

Test-WSMan -ComputerName 'fs1.ad.example.test'
Enter-PSSession -ComputerName 'fs1.ad.example.test'
hostname
whoami
Exit-PSSession

Setelah koneksi berhasil, hostname harus mengidentifikasi FS1 dan whoami menampilkan identitas pengguna yang diharapkan. Exit-PSSession mengembalikan kendali ke PC pengelolaan. Saat DNS domain berfungsi, gunakan nama domain lengkap (FQDN, Fully Qualified Domain Name); alamat IP tidak memakai autentikasi Kerberos yang sama seperti nama server.

Batasi daftar kepercayaan pada alternatif workgroup

Koneksi melalui IP atau workgroup memerlukan kondisi tambahan: HTTPS yang dikonfigurasi dengan benar atau entri TrustedHosts tertentu, serta kredensial yang diberikan secara eksplisit. Panduan pemecahan masalah koneksi jarak jauh menjelaskan persyaratannya. TrustedHosts menekan kesalahan verifikasi identitas, bukan mengautentikasi server. Untuk penggunaan operasional, pertimbangkan HTTPS dengan sertifikat tepercaya dan ikuti kebijakan autentikasi organisasi.

Dalam lab terisolasi ini, verifikasi alamat IP FS1 melalui konsolnya. Di PC pengelolaan, buka Windows PowerShell sebagai administrator dan pastikan WinRM tersedia untuk mengakses WSMan:. Contoh menyimpan daftar sebelumnya lalu menambahkan satu tujuan; wildcard yang sudah ada tetap berlaku. Periksa nilai awal karena TrustedHosts memengaruhi semua pengguna PC. Jangan mengganti daftar dengan wildcard global.

Ganti FS1\Administrator dalam contoh dengan akun administrator FS1 yang sebenarnya dan memiliki kata sandi tidak kosong. Get-Credential dengan -UserName dapat lebih dahulu meminta parameter wajib Message pada Windows PowerShell 5.1. Isikan deskripsi permintaan, bukan kata sandi; masukkan kredensial pada permintaan autentikasi berikutnya. Jalankan Enter-PSSession secara interaktif, periksa hostname setelah masuk, lalu keluar dengan Exit-PSSession.

$previousHosts = (Get-Item WSMan:\localhost\Client\TrustedHosts).Value
$labTargets = (@($previousHosts -split ',') + '172.24.50.20' | Where-Object { $_ } | Sort-Object -Unique) -join ','
Set-Item WSMan:\localhost\Client\TrustedHosts -Value $labTargets
$labCredential = Get-Credential -UserName 'FS1\Administrator'
Enter-PSSession -ComputerName '172.24.50.20' -Credential $labCredential
hostname
Exit-PSSession

Akun administrator lokal yang dibuat sendiri dapat terkena pembatasan jarak jauh Kontrol Akun Pengguna (UAC, User Account Control). Tinjau rancangan autentikasi dan hak akses tanpa menonaktifkan perlindungan tersebut secara menyeluruh. Setelah kembali ke PC pengelolaan, pulihkan nilai awal dalam jendela PowerShell lokal yang sama tempat $previousHosts disimpan. Pastikan perubahan orang lain yang terjadi setelahnya tidak tertimpa. Jika jendela sudah ditutup dan variabel hilang, jangan menganggap daftar semula kosong:

if ([string]::IsNullOrEmpty($previousHosts)) {
    Clear-Item WSMan:\localhost\Client\TrustedHosts
} else {
    Set-Item WSMan:\localhost\Client\TrustedHosts -Value $previousHosts
}

Jalankan satu kueri jarak jauh dan periksa asal hasilnya

Setelah persyaratan domain terpenuhi, jalankan kueri berikut pada PC pengelolaan untuk memperoleh informasi sistem operasi FS1 tanpa membuka konsol interaktif:

Invoke-Command -ComputerName 'fs1.ad.example.test' -ScriptBlock {
    Get-CimInstance Win32_OperatingSystem | Select-Object Caption,Version,LastBootUpTime
}

Periksa PSComputerName serta nilai Caption, Version, dan LastBootUpTime yang dikembalikan untuk memastikan server yang dikueri; jangan menganggap hasil lokal berasal dari server jarak jauh. Periksa DNS, keterjangkauan port, respons WinRM, autentikasi, dan otorisasi sesi secara terpisah. Respons Test-WSMan tidak membuktikan hak menjalankan perintah. Sebelum membatalkan perubahan listener atau layanan, periksa ketergantungan alat lain dan bandingkan dengan kondisi awal.