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
- 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
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”
Get-ChildItem –Path C:
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}
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.