Geek School: Belajar Cara Menggunakan Objek dalam PowerShell

Isi kandungan:

Geek School: Belajar Cara Menggunakan Objek dalam PowerShell
Geek School: Belajar Cara Menggunakan Objek dalam PowerShell
Anonim

Objek dalam. Net adalah hampir sama kecuali dua perbezaan kecil: “Bahagian” dipanggil sifat dan “Arahan” dipanggil kaedahJika kami ingin mewakili Perkhidmatan Windows sebagai objek, kami mungkin memutuskan bahawa sesuai untuk menerangkannya menggunakan tiga sifat: Nama Perkhidmatan, Negeri dan Penerangan. Kami juga perlu berinteraksi dengan perkhidmatan, jadi kami mungkin memberikan objek kaedah Mula, Henti dan Jeda.

Imej
Imej

Anda boleh melihat sifat dan kaedah objek dengan menghantarnya ke cmdlet Dapatkan Ahli. Objek yang dikeluarkan oleh cmdlet PowerShell sebahagian besarnya adalah jenis asas daripada rangka kerja. Net, tetapi anda boleh mencipta objek anda sendiri jika anda perlu menggunakan bahasa seperti C atau menggunakan jenis PSObject.

Jalur Paip

Terdapat banyak cangkerang Linux dengan saluran paip, membolehkan anda menghantar teks yang dikeluarkan oleh satu perintah sebagai input kepada arahan seterusnya dalam saluran paip. PowerShell membawa ini ke peringkat seterusnya dengan membenarkan anda mengambil objek yang dikeluarkan oleh satu cmdlet dan menghantarnya sebagai input kepada cmdlet seterusnya dalam perancangan. Caranya ialah mengetahui jenis objek yang dipulangkan oleh cmdlet, yang sangat mudah apabila menggunakan cmdlet Dapatkan Ahli.

Imej
Imej

Atas sebab di luar skop artikel ini, sifat dan kaedah dipanggil ahli kelas secara bersama, yang menerangkan sebab anda menggunakan cmdlet Dapatkan Ahli untuk mendapatkan senarai semua kaedah dan sifat yang dimiliki oleh objek. Walau bagaimanapun, cmdlet Dapatkan Ahli juga mengembalikan satu lagi maklumat penting, jenis objek asas. Dalam tangkapan skrin di atas, kita dapat melihat bahawa Get-Service mengembalikan objek jenis:

Memandangkan PowerShell berurusan dengan objek dan bukan teks, tidak semua cmdlet boleh dipautkan bersama menggunakan saluran paip[1]. Ini bermakna kita perlu mencari cmdlet yang ingin menerima objek System. ServiceProcess. ServiceController daripada saluran paip.

Imej
Imej

Perhatikan bahawa terdapat cmdlet yang dipanggil Stop-Service; mari lihat bantuan untuknya.

Imej
Imej

Nampaknya parameter InputObject mengambil tatasusunan objek ServiceController sebagai input. Biasanya, jika anda melihat parameter yang dipanggil InputObject, ia akan menerima input daripada Pipeline, tetapi untuk memastikan mari kita lihat bantuan penuh untuk parameter itu.

Imej
Imej

Syakan kami betul. Jadi pada ketika ini kita tahu perkara berikut:

  • Get-Service mengembalikan objek ServiceController
  • Stop-Service mempunyai parameter yang dipanggil InputObject yang menerima satu atau lebih ServiceControllers sebagai input.
  • Parameter InputObject menerima input saluran paip.

Menggunakan maklumat ini, kami boleh melakukan perkara berikut:

Imej
Imej

Itu sahaja untuk kali ini kawan-kawan. Lain kali kita lihat bagaimana kita boleh memformat, menapis dan membandingkan objek dalam Talian Paip.

Kerja Rumah

Baca pada Talian Paip Objek

Jika anda mempunyai sebarang soalan, anda boleh tweet saya @taybgibb, atau tinggalkan komen sahaja.

Topik popular.