18Aug
Memahami objek adalah salah satu konsep dasar untuk "mendapatkan" PowerShell. Bergabunglah dengan kami saat kami mengeksplorasi objek dan bagaimana mereka membuat PowerShell lebih baik daripada shell lainnya di luar sana hari ini.
Pastikan untuk membaca artikel sebelumnya dalam seri:
- Pelajari Cara Mengotomatiskan Windows dengan PowerShell
- Belajar Menggunakan Cmdlet di PowerShell
Dan tetap mengikuti seri sepanjang minggu ini. Objek
Pernahkah Anda bertanya-tanya apa yang membuat PowerShell terpisah dari cangkang Linux tradisional seperti Bash, atau bahkan perintah terdahulu prompt? Jawabannya sangat sederhana: teks keluaran kerang tradisional, yang menyulitkan melakukan hal-hal seperti pemformatan dan penyaringan. Tentu saja, ada alat untuk membantu menyelesaikan pekerjaan Anda( sed dan grep muncul dalam pikiran), namun di penghujung hari, jika Anda ingin melakukan penguraian teks berat, Anda perlu mengetahui ekspresi reguler sepertipunggung tanganmu
PowerShell mengambil keuntungan dari framework. Net yang mendasarinya dan mengambil pendekatan yang berbeda, menggunakan objek dan bukan teks. Benda hanyalah representasi dari sesuatu. Mereka adalah kumpulan suku cadang dan tindakan untuk menggunakannya. Mari kita lihat bagian sepeda dan bagaimana kita bisa menggunakannya. Objek
di. Net sama saja kecuali dua perbedaan kecil: "Bagian" disebut properti dan "Petunjuk" disebut metode .Jika kita ingin mewakili Layanan Windows sebagai objek, kita dapat memutuskan bahwa tepat untuk menggambarkannya menggunakan tiga properti: Nama Layanan, Negara Bagian dan Deskripsi. Kita juga perlu berinteraksi dengan layanan ini, jadi kita bisa memberi objek itu metode Start, a Stop and a Pause.
Anda dapat melihat properti dan metode objek dengan menyebarkannya ke cmdlet Get-Member. Objek yang menghasilkan output cmdlet PowerShell sebagian besar merupakan tipe yang mendasarinya dari kerangka. Net, namun Anda dapat membuat objek sendiri jika Anda perlu menggunakan bahasa seperti C # atau menggunakan jenis PSObject.
Pipeline
Ada banyak kerang Linux dengan pipa, memungkinkan Anda mengirim teks yang satu perintah dihasilkan sebagai masukan ke perintah berikutnya dalam pipa. PowerShell membawa ini ke tingkat berikutnya dengan memungkinkan Anda mengambil benda-benda yang menghasilkan satu cmdlet dan meneruskannya sebagai masukan ke cmdlet berikutnya di dalam pipa. Caranya adalah mengetahui jenis objek cmdlet yang kembali, yang sangat mudah saat menggunakan cmdlet Get-Member.
Get-Service |Get-Member
Untuk alasan di luar cakupan artikel ini, properti dan metode disebut anggota kelas, yang menjelaskan mengapa Anda menggunakan cmdlet Get-Member untuk mendapatkan daftar semua metode dan properti yang dimiliki objek. Namun, cmdlet Get-Member juga mengembalikan informasi penting lainnya, tipe objek yang mendasarinya. Pada screenshot di atas, kita dapat melihat bahwa Get-Service mengembalikan objek tipe ini:
System. ServiceProcess. ServiceController
Karena PowerShell menangani objek dan bukan teks, tidak semua cmdlet dapat dihubungkan bersamaan menggunakan pipa [1].Itu berarti kita perlu menemukan cmdlet yang ingin menerima objek System. ServiceProcess. ServiceController dari pipa.
Get-Command -ParameterType System. ServiceProcess. ServiceController
Perhatikan bahwa ada cmdlet yang disebut Stop-Service;mari kita lihat bantuan untuk itu.
Get-Help -Name Stop-Service
Sepertinya parameter InputObject mengambil serangkaian objek ServiceController sebagai masukan. Biasanya, jika Anda melihat parameter yang disebut InputObject, ia akan menerima masukan dari Pipeline, namun untuk memastikan mari kita lihat bantuan penuh untuk parameter itu.
Get-Help -Name Stop-Service -Full
Kecurigaan kami benar. Jadi pada titik ini kita mengetahui hal berikut:
- Get-Service mengembalikan objek ServiceController
- Stop-Service memiliki parameter yang disebut InputObject yang menerima satu atau lebih ServiceControllers sebagai input.
- Parameter InputObject menerima masukan pipa.
Dengan menggunakan informasi ini, kami dapat melakukan hal berikut:
Get-Service -Name 'Apple Mobile Device' |Stop-Service
Itu saja untuk orang-orang zaman ini. Lain kali kita melihat bagaimana kita bisa memformat, memfilter dan membandingkan objek di Pipeline.
Homework
- Baca di Objek Pipa
Jika Anda memiliki pertanyaan, Anda dapat menciak saya @taybgibb, atau hanya meninggalkan komentar.