Geek School: Belajar Menggunakan Remoting dalam PowerShell

Isi kandungan:

Geek School: Belajar Menggunakan Remoting dalam PowerShell
Geek School: Belajar Menggunakan Remoting dalam PowerShell
Anonim

Anda perlu menjawab ya kepada semua gesaan. Apabila anda menjalankan Enable-PSRemoting, beberapa perubahan dibuat pada PC anda:

  • Perkhidmatan WinRM bermula.
  • Perkhidmatan WinRM bertukar daripada mod permulaan Manual kepada Automatik.
  • Ia mencipta pendengar HTTP yang terikat pada semua kad rangkaian anda.
  • Ia juga mencipta pengecualian tembok api masuk untuk protokol WS-MAN.
  • Beberapa konfigurasi sesi lalai dibuat

Jika anda menjalankan Windows 7 dan lokasi kad rangkaian anda ditetapkan kepada Awam, mendayakan PowerShell Remoting akan gagal. Untuk membetulkannya, cuma tukar ke lokasi rangkaian Rumah atau Tempat Kerja. Sebagai alternatif, anda boleh melangkau semakan rangkaian menggunakan yang berikut:

Imej
Imej

Walau bagaimanapun, kami mengesyorkan anda lebih suka menukar lokasi rangkaian anda.

Terdapat dua cara untuk menyambung ke mesin lain menggunakan PowerShell. Terdapat kaedah satu kepada satu, yang hampir serupa dengan menggunakan SSH, dan kemudian terdapat kaedah satu kepada banyak.

Menggunakan Sesi PowerShell

Cara pertama untuk menyambung ke mesin jauh menggunakan PowerShell adalah menggunakan sesuatu yang dipanggil Sesi PowerShell. Ringkasnya, sesi membolehkan anda menjalankan arahan pada mesin jauh dengan cara interaktif sama seperti yang anda lakukan pada mesin anda sendiri. Untuk membuka sesi hanya taip yang berikut:

Imej
Imej

Gesaan akan mendapat awalan yang menandakan mesin yang anda gunakan untuk menjalankan cmdlet.

Imej
Imej

Dari sini anda benar-benar boleh melayan gesaan seolah-olah anda sedang duduk di mesin jauh. Sebagai contoh, jika anda ingin melihat semua fail pada pemacu C:\ anda boleh melakukan yang mudah:

Imej
Imej

Jika anda berasal dari latar belakang Linux, anda boleh memikirkan untuk menggunakan kaedah satu ke satu ini untuk menjauhkan diri sebagai alternatif PowerShell kepada SSH.

Menggunakan Invoke-Command

Cara kedua anda boleh menggunakan PowerShell pada mesin jauh adalah dengan menggunakan Invoke-Command. Kelebihan menggunakan Invoke-Command datang daripada fakta bahawa anda boleh melaksanakan arahan yang sama pada berbilang mesin secara serentak. Seperti yang anda boleh bayangkan, ini amat berguna apabila anda ingin melakukan sesuatu seperti mengumpulkan log peristiwa daripada pelayan anda. Invoke-Command mengikut sintaks berikut:

Imej
Imej

Memandangkan arahan dilaksanakan secara selari merentas semua mesin, anda memerlukan beberapa cara untuk melihat PC mana hasil yang diberikan datang. Anda boleh melakukan ini dengan melihat sifat PSComputerName.

Imej
Imej

Apabila anda menggunakan Invoke-Command, anda tidak lagi mempunyai objek yang mungkin anda jangkakan dalam Pipeline. Anda lihat, untuk PowerShell mendapatkan maklumat daripada mesin jauh kembali ke mesin anda, mereka memerlukan beberapa cara untuk mewakili objek yang arahan yang anda jalankan pada output mesin jauh. Hari ini nampaknya cara yang dipilih untuk mewakili struktur data hierarki adalah dengan menggunakan XML, yang bermaksud apabila anda mengeluarkan arahan menggunakan Invoke-Command, hasilnya akan disirikan terlebih dahulu ke dalam XML sebelum dihantar semula ke mesin anda. Sebaik sahaja mereka kembali ke mesin anda, mereka dinyahsiri semula menjadi objek; gotcha di sini ialah apabila ia dinyahsiri, semua kaedah, kecuali kaedah ToString(), yang dimiliki objek akan dilucutkan daripadanya.

Imej
Imej

Nota: Terdapat beberapa pengecualian kepada peraturan ini, contohnya kebanyakan jenis primitif seperti integer boleh dinyahsiri dengan kaedahnya disertakan. Terdapat juga proses yang dipanggil Rehidrasi di mana beberapa kaedah boleh ditambah kembali kepada objek deserialisasi. Jadi cuma berhati-hati dan ingat Get-Member ialah rakan anda.

Topik popular.