Menjalankan Perintah Jarak Jauh
Anda dapat menjalankan perintah pada satu atau ratusan komputer dengan satu perintah PowerShell. Windows PowerShell mendukung komputasi jarak jauh menggunakan berbagai teknologi, termasuk WMI, RPC, dan WS-Management.
PowerShell mendukung jarak jauh WMI, WS-Management, dan SSH. Di PowerShell 7 dan yang lebih tinggi, RPC hanya didukung di Windows.
Untuk informasi selengkapnya tentang jarak jauh di PowerShell, lihat artikel berikut ini:
Windows PowerShell jarak jauh tanpa konfigurasi
Banyak cmdlet Windows PowerShell memiliki parameter ComputerName yang memungkinkan Anda mengumpulkan data dan mengubah pengaturan pada satu atau beberapa komputer jarak jauh. Cmdlet ini menggunakan berbagai protokol komunikasi dan bekerja pada semua sistem operasi Windows tanpa konfigurasi khusus.
Cmdlet ini meliputi:
- Restart-Computer
- Test-Connection
- Clear-EventLog
- Get-EventLog
- Get-HotFix
- Get-Process
- Get-Service
- Set-Service
- Get-WinEvent
- Get-WmiObject
Biasanya, cmdlet yang mendukung jarak jauh tanpa konfigurasi khusus memiliki parameter ComputerName dan tidak memiliki parameter Session. Untuk menemukan cmdlet ini dalam sesi Anda, ketik:
Get-Command | Where-Object {
$_.Parameters.Keys -contains "ComputerName" -and
$_.Parameters.Keys -notcontains "Session"
}
Remote Windows PowerShell
Dengan menggunakan protokol WS-Management, jarak jauh Windows PowerShell memungkinkan Anda menjalankan perintah Windows PowerShell apa pun pada satu atau beberapa komputer jarak jauh. Anda dapat membuat koneksi persisten, memulai sesi interaktif, dan menjalankan skrip di komputer jarak jauh.
Untuk menggunakan jarak jauh Windows PowerShell, komputer jarak jauh harus dikonfigurasi untuk manajemen jarak jauh. Untuk informasi selengkapnya, termasuk instruksi, lihat Tentang Persyaratan Jarak Jauh.
Setelah Anda mengonfigurasi jarak jauh Windows PowerShell, banyak strategi jarak jauh tersedia untuk Anda. Artikel ini hanya mencantumkan beberapa di antaranya. Untuk informasi selengkapnya, lihat Tentang Jarak Jauh.
Memulai sesi interaktif
Untuk memulai sesi interaktif dengan satu komputer jarak jauh, gunakan cmdlet Enter-PSSession . Misalnya, untuk memulai sesi interaktif dengan komputer jarak jauh Server01, ketik:
Enter-PSSession Server01
Perintah berubah untuk menampilkan nama komputer jarak jauh. Perintah apa pun yang Anda ketik pada perintah berjalan di komputer jarak jauh dan hasilnya ditampilkan di komputer lokal.
Untuk mengakhiri sesi interaktif, ketik:
Exit-PSSession
Untuk informasi selengkapnya tentang Enter-PSSession
cmdlet dan Exit-PSSession
, lihat:
Jalankan Perintah Jarak Jauh
Untuk menjalankan perintah pada satu atau beberapa komputer, gunakan cmdlet Invoke-Command . Misalnya, untuk menjalankan perintah Get-UICulture pada komputer jarak jauh Server01 dan Server02, ketik:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
Output dikembalikan ke komputer Anda.
LCID Name DisplayName PSComputerName
---- ---- ----------- --------------
1033 en-US English (United States) server01.corp.fabrikam.com
1033 en-US English (United States) server02.corp.fabrikam.com
Menjalankan Skrip
Untuk menjalankan skrip pada satu atau banyak komputer jarak jauh, gunakan parameter FilePath cmdlet Invoke-Command
. Skrip harus aktif atau dapat diakses oleh komputer lokal Anda. Hasilnya dikembalikan ke komputer lokal Anda.
Misalnya, perintah berikut menjalankan DiskCollect.ps1
skrip di komputer jarak jauh, Server01, dan Server02.
Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1
Menetapkan Koneksi Persisten
New-PSSession
Gunakan cmdlet untuk membuat sesi persisten pada komputer jarak jauh. Contoh berikut membuat sesi jarak jauh di Server01 dan Server02. Objek sesi disimpan dalam $s
variabel .
$s = New-PSSession -ComputerName Server01, Server02
Sekarang setelah sesi dibuat, Anda dapat menjalankan perintah apa pun di dalamnya. Dan karena sesinya persisten, Anda dapat mengumpulkan data dari satu perintah dan menggunakannya di perintah lain.
Misalnya, perintah berikut menjalankan Get-HotFix
perintah dalam sesi dalam $s
variabel dan menyimpan hasil dalam $h
variabel. Variabel $h
dibuat di setiap sesi di $s
, tetapi tidak ada di sesi lokal.
Invoke-Command -Session $s {$h = Get-HotFix}
Sekarang Anda dapat menggunakan data dalam $h
variabel dengan perintah lain dalam sesi yang sama. Hasilnya ditampilkan pada komputer lokal. Contohnya:
Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NT AUTHORITY\SYSTEM"}}
Jarak Jauh Tingkat Lanjut
PowerShell menyertakan cmdlet yang memungkinkan Anda untuk:
- Mengonfigurasi dan membuat sesi jarak jauh baik dari ujung lokal maupun jarak jauh
- Membuat sesi yang dikustomisasi dan dibatasi
- Mengimpor perintah dari sesi jarak jauh yang benar-benar berjalan secara implisit pada sesi jarak jauh
- Mengonfigurasi keamanan sesi jarak jauh
PowerShell di Windows menyertakan penyedia WSMan. Penyedia membuat WSMAN:
drive yang memungkinkan Anda menavigasi melalui hierarki pengaturan konfigurasi di komputer lokal dan komputer jarak jauh.
Untuk informasi selengkapnya tentang penyedia WSMan, lihat Penyedia WSMan dan Tentang Cmdlet WS-Management, atau di konsol Windows PowerShell, ketik Get-Help wsman
.
Untuk informasi selengkapnya, lihat:
Untuk bantuan terkait kesalahan jarak jauh, lihat about_Remote_Troubleshooting.