Pembelajaran Sekolah Geek Menggunakan Cmdlets dalam PowerShell
Sekiranya anda menggunakan ipconfig atau ping melalui arahan arahan, anda akan menjadi separuh daripada menjadi ninja PowerShell. Jadi datang dan sertai kami semasa kami menemui cmdlet dalam pemasangan Geek School ini.
Pastikan anda menyemak artikel pertama kami yang memperkenalkan PowerShell, dan tunggu selama siri kami sepanjang minggu.
Anatomi Cmdlet
Di bahagian pertama Siri kami melihat satu cmdlet yang kelihatan seperti ini:
Kemaskini-Bantuan
Cmdlet PowerShell mempunyai sintaks Kata-Kata, yang boleh dilihat di atas. Perkara penting yang perlu diperhatikan adalah bahawa kata nama sentiasa tunggal walaupun cmdlet mungkin mengembalikan lebih daripada satu hasil. Untuk melihat senarai kata kerja undang-undang dalam PowerShell anda boleh menggunakan cmdlet Get-Verb.
Mengetahui kata kerja undang-undang dan mengingati aturan kata nama tunggal benar-benar membantu meneka nama cmdlet. Contohnya, katakan anda mahu dapatkan senarai perkhidmatan dan status mereka - betul, semudah Get-Service. Bagaimana pendapat anda dapatkan senarai berjalan proses - Itu betul, Get-Process akan melakukan silap mata itu.
Get-Process
Ini menjadikannya sangat mudah untuk bekerja dengan teknologi apa pun. Contohnya, jika anda mempunyai burger cmdlet, kita dapat dengan mudah mendapatkan senarai peti mel pada pelayan dengan menggunakan:
Get-Mailbox
Walau bagaimanapun, terdapat pengecualian. Mengetepikan, semua arahan spesifik teknologi lain memerlukan awalan. Sebagai contoh, jika kami mahu mendapatkan pengguna yang sedang log masuk melalui Desktop Jauh, kami akan menaip:
Dapatkan-RDUserSession
Yang boleh dilihat dalam tangkapan skrin di bawah.
Nota: Tangkapan skrin ini diambil pada kotak Server 2012 kerana di situlah anda akan mencari sebahagian besar modul khusus teknologi.
Beberapa ketika dahulu, saya membaca artikel oleh Don Jones, Godfather of PowerShell, di mana beliau menerangkan bahawa Exchange dihantar sebelum awalan ini ditambah kepada cmdlet, jadi ia tidak pernah melaksanakannya dan tidak akan.
Aliases
Satu lagi ciri PowerShell datang dengan adalah keupayaan untuk mempunyai pelbagai cara untuk menjalankan arahan yang sama - alias, jika anda akan. Perkara yang mengagumkan tentang mereka adalah bahawa mereka termasuk banyak arahan yang mungkin anda gunakan dalam perintah arahan, serta beberapa alias Linux. Sebagai contoh, dalam PowerShell kita boleh mendapatkan senarai direktori dengan menggunakan:
Get-ChildItem
Digunakan untuk menggunakan arahan arahan? Jangan bimbang, mereka telah melindunginya.
Mempunyai latar belakang Linux? Mereka mempunyai anda dilindungi di sana juga.
Apabila anda telah membuat skrip selama beberapa tahun, anda cenderung untuk menjadi malas dan mula menggunakan alias banyak, tetapi ini tidak membantu pendatang baru yang akan membaca kod kami. Untuk melihat arahan apa alias sedang berjalan di bawah tudung, anda boleh menggunakan yang berikut:
Get-Alias -Name ls
Sebaliknya, jika anda rasa sudah waktunya untuk melangkah permainan anda, anda boleh menggunakan parameter takrif untuk mendapatkan semua alias untuk cmdlet:
Get-ChildItem -Definition Get-ChildItem
Jika anda datang dari latar belakang lain, anda boleh menambah alias anda sendiri dengan melakukan perkara berikut:
New-Alias -Name icanhazfilez -Value Get-ChildItem
Jelas sekali, anda perlu menggantikan "icanhazfilez" dengan nama alias baru anda dan Get-ChildItem dengan cmdlet yang anda mahu ia berjalan di bawah hud.
Satu perkara yang harus diperhatikan adalah bahawa anda kehilangan semua alias yang telah anda tetapkan apabila anda menutup shell. Anda boleh mendapatkan sekitar ini dengan menambah definisi mereka kepada skrip profil anda.
Parameter yang memuncak
Windows PowerShell juga membolehkan anda memotong nama parameter sehingga titik di mana mereka menjadi samar-samar, iaitu sehingga titik di mana PowerShell tidak dapat lagi mengetahui parameter yang anda sedang bicarakan. Sebagai contoh:
Get-Service -Name 'Apple Mobile Device' -ComputerName localhost
Adalah sama seperti:
Get-Service -Na 'Mobile Mobile Device' -Com localhost
Sekiranya anda dengan peluang membuat nama parameter terlalu samar, anda akan mendapat ralat.
Perintah Legacy
Akhirnya, arahan yang anda tahu dan suka akan tetap berfungsi di PowerShell.
ping www.google.com
Ingatlah bahawa aplikasi warisan seperti ping output rentetan, dan sering ada cara yang lebih baik untuk melakukan perkara yang sama menggunakan cmdlet PowerShell.
Daripada mengeluarkan rentetan panjang teks, kita kini ditinggalkan dengan objek, yang akan kita lihat dalam edisi esek di Geek School.