Geek School: Belajar Menggunakan Remoting di PowerShell

Daftar Isi:

Geek School: Belajar Menggunakan Remoting di PowerShell
Geek School: Belajar Menggunakan Remoting di PowerShell

Video: Geek School: Belajar Menggunakan Remoting di PowerShell

Video: Geek School: Belajar Menggunakan Remoting di PowerShell
Video: POWERSHELL!!! CMD yang lebih POWERFULL | Get_WmiObject - YouTube 2024, Mungkin
Anonim
Salah satu fitur terbaik yang ditawarkan PowerShell adalah kemampuan untuk mengelola Server Anda dari jarak jauh. Bahkan memungkinkan Anda mengelola banyak dari mereka sekaligus juga.
Salah satu fitur terbaik yang ditawarkan PowerShell adalah kemampuan untuk mengelola Server Anda dari jarak jauh. Bahkan memungkinkan Anda mengelola banyak dari mereka sekaligus juga.

Pastikan untuk membaca artikel sebelumnya dalam rangkaian:

  • Pelajari Cara Mengotomatiskan Windows dengan PowerShell
  • Belajar Menggunakan Cmdlet di PowerShell
  • Mempelajari Cara Menggunakan Objek di PowerShell
  • Belajar Memformat, Memfilter dan Membandingkan dalam PowerShell

Dan nantikan terus sisa serial ini sepanjang minggu.

Apa itu Remoting?

Pengelolaan massal server Anda bisa membosankan, dan jika Anda harus membuat perubahan konfigurasi IIS pada 50 server web sebelumnya, Anda akan tahu apa yang saya maksud. Ini adalah jenis situasi ketika PowerShell Remoting dan kemampuan skrip bahasa dapat datang untuk menyelamatkan. Menggunakan HTTP atau HTTPS yang lebih aman, PowerShell Remoting memungkinkan Anda mengirim perintah ke mesin remote pada jaringan Anda. Mesin kemudian menjalankan perintah dan mengirim kembali hasilnya kepada Anda, yang pada gilirannya ditampilkan di layar Anda.

Mari Dapatkan Teknis

Inti dari PowerShell Remoting terletak pada satu Layanan Windows, Windows Remote Management, atau layanan WinRM, karena telah diketahui. Dengan menggunakan WinRM, Anda dapat mengatur satu atau beberapa konfigurasi sesi (juga dikenal sebagai endpoint), yang pada dasarnya adalah file yang berisi informasi tentang pengalaman yang ingin Anda berikan kepada orang yang terhubung ke instance PowerShell jarak jauh Anda. Lebih khusus lagi, Anda dapat menggunakan file konfigurasi sesi untuk menentukan siapa yang dapat dan siapa yang tidak dapat terhubung ke instance, apa cmdlet dan skrip yang dapat mereka jalankan, serta konteks keamanan apa sesi harus dijalankan di bawah. Menggunakan Layanan WinRM, Anda juga mengatur "pendengar", yang mendengarkan permintaan PowerShell yang masuk. "Pendengar" ini bisa berupa HTTP atau HTTPS dan dapat terikat ke satu alamat IP di komputer Anda. Ketika Anda membuka koneksi PowerShell ke komputer lain (secara teknis ini dilakukan menggunakan protokol WS-MAN, yang didasarkan pada HTTP), koneksi akan terhubung ke salah satu "pendengar" ini. The "pendengar" kemudian bertanggung jawab mengirim lalu lintas ke aplikasi yang terkait dengan file konfigurasi sesi yang sesuai; aplikasi (biasanya PowerShell tetapi Anda dapat memiliki aplikasi hosting lain jika Anda mau) kemudian menjalankan perintah dan memberi umpan balik melalui "pendengar" di seluruh jaringan dan kembali ke komputer Anda.

Tunjukkan padaku bagaimana caranya

Hal pertama yang perlu Anda lakukan adalah mengaktifkan Remoting pada Mesin yang ingin Anda sambungkan. Ini dapat dilakukan dengan menjalankan yang berikut:

Enable-PSRemoting

Anda harus menjawab ya untuk semua petunjuknya. Ketika Anda menjalankan Enable-PSRemoting, beberapa perubahan dilakukan ke PC Anda:
Anda harus menjawab ya untuk semua petunjuknya. Ketika Anda menjalankan Enable-PSRemoting, beberapa perubahan dilakukan ke PC Anda:
  • Layanan WinRM dijalankan.
  • Layanan WinRM berubah dari mode Mulai manual menjadi Otomatis.
  • Ini menciptakan pendengar HTTP yang terikat ke semua kartu jaringan Anda.
  • Ini juga menciptakan pengecualian firewall masuk untuk protokol WS-MAN.
  • Beberapa konfigurasi sesi default dibuat

Jika Anda menjalankan Windows 7 dan lokasi kartu jaringan Anda disetel ke Publik, mengaktifkan PowerShell Remoting akan gagal. Untuk memperbaikinya, cukup beralih ke lokasi jaringan Rumah atau Kantor. Atau, Anda dapat melewati pemeriksaan jaringan menggunakan berikut ini:

Enable-PSRemoting –SkipNetworkProfileCheck

Namun, kami sarankan Anda untuk mengubah lokasi jaringan Anda.
Namun, kami sarankan Anda untuk mengubah lokasi jaringan Anda.

Ada dua cara menghubungkan ke komputer lain menggunakan PowerShell. Ada metode satu ke satu, yang sangat mirip dengan menggunakan SSH, lalu ada metode satu ke banyak.

Menggunakan Sesi PowerShell

Cara pertama menghubungkan ke mesin remote menggunakan PowerShell adalah menggunakan sesuatu yang disebut Sesi PowerShell. Sederhananya, suatu sesi memungkinkan Anda menjalankan perintah pada mesin jarak jauh dengan cara yang interaktif, sama seperti yang Anda lakukan pada komputer Anda sendiri. Untuk membuka sesi cukup ketik yang berikut:

Enter-PSSession –ComputerName “Darlah”

Prompt akan mendapatkan awalan yang menandakan mesin yang Anda jalankan dengan cmdlet.
Prompt akan mendapatkan awalan yang menandakan mesin yang Anda jalankan dengan cmdlet.
Dari sini Anda dapat benar-benar memperlakukan prompt seolah-olah Anda sedang duduk di mesin jarak jauh. Misalnya, jika Anda ingin melihat semua file di C: drive Anda dapat melakukan yang sederhana:
Dari sini Anda dapat benar-benar memperlakukan prompt seolah-olah Anda sedang duduk di mesin jarak jauh. Misalnya, jika Anda ingin melihat semua file di C: drive Anda dapat melakukan yang sederhana:

Get-ChildItem –Path C:

Jika Anda berasal dari latar belakang Linux, Anda dapat berpikir untuk menggunakan metode remoting satu ke satu ini sebagai alternatif PowerShell untuk SSH.
Jika Anda berasal dari latar belakang Linux, Anda dapat berpikir untuk menggunakan metode remoting satu ke satu ini sebagai alternatif PowerShell untuk SSH.

Menggunakan Perintah Invoke

Cara kedua Anda dapat menggunakan PowerShell di mesin remote adalah dengan menggunakan Invoke-Command. Keuntungan menggunakan Invoke-Command berasal dari fakta bahwa Anda dapat menjalankan perintah yang sama pada beberapa mesin secara bersamaan. Seperti yang Anda bayangkan, ini sangat berguna ketika Anda ingin melakukan sesuatu seperti mengumpulkan log peristiwa dari server Anda. Invoke-Command mengikuti sintaks berikut:

Invoke-Command -ComputerName Darlah,localhost -ScriptBlock {Get-EventLog Application -Newest 2}

Karena perintah dijalankan secara paralel di semua mesin, Anda akan memerlukan beberapa cara untuk melihat PC mana dari hasil yang diberikan. Anda dapat melakukan ini dengan melihat properti PSComputerName.
Karena perintah dijalankan secara paralel di semua mesin, Anda akan memerlukan beberapa cara untuk melihat PC mana dari hasil yang diberikan. Anda dapat melakukan ini dengan melihat properti PSComputerName.
Saat Anda menggunakan Command-Invoke, Anda tidak lagi memiliki objek yang mungkin Anda harapkan di Pipeline. Anda lihat, agar PowerShell mendapatkan informasi dari mesin remote kembali ke mesin Anda, mereka membutuhkan beberapa cara untuk merepresentasikan objek yang Anda jalankan pada output mesin remote. Hari-hari ini tampaknya cara yang dipilih untuk mewakili struktur data hirarkis adalah dengan menggunakan XML, yang berarti ketika Anda mengeluarkan perintah menggunakan Invoke-Command, hasilnya adalah serial pertama ke XML sebelum dikirim kembali ke komputer Anda.Begitu mereka kembali ke mesin Anda, mereka deserialized kembali menjadi objek; Gotcha di sini adalah bahwa ketika mereka deserialized, semua metode, kecuali metode ToString (), bahwa objek telah dilucuti darinya.
Saat Anda menggunakan Command-Invoke, Anda tidak lagi memiliki objek yang mungkin Anda harapkan di Pipeline. Anda lihat, agar PowerShell mendapatkan informasi dari mesin remote kembali ke mesin Anda, mereka membutuhkan beberapa cara untuk merepresentasikan objek yang Anda jalankan pada output mesin remote. Hari-hari ini tampaknya cara yang dipilih untuk mewakili struktur data hirarkis adalah dengan menggunakan XML, yang berarti ketika Anda mengeluarkan perintah menggunakan Invoke-Command, hasilnya adalah serial pertama ke XML sebelum dikirim kembali ke komputer Anda.Begitu mereka kembali ke mesin Anda, mereka deserialized kembali menjadi objek; Gotcha di sini adalah bahwa ketika mereka deserialized, semua metode, kecuali metode ToString (), bahwa objek telah dilucuti darinya.
Image
Image

Catatan: Ada beberapa pengecualian untuk aturan ini, misalnya jenis yang paling primitif seperti bilangan bulat dapat dihilangkan dengan metode yang disertakan. Ada juga proses yang disebut Rehidrasi di mana beberapa metode dapat ditambahkan kembali ke objek deserialized. Jadi, berhati-hatilah dan ingat Get-Member adalah teman Anda.

Pekerjaan rumah

Baca Rahasia ebook PowerShell Remoting oleh Don Jones.

Direkomendasikan: