Bagikan melalui


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:

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.

Lihat Juga