Laman » bagaimana untuk » Sekolah Geek Belajar Cara Memperpanjang PowerShell

    Sekolah Geek Belajar Cara Memperpanjang PowerShell

    PowerShell menawarkan dua cara untuk anda memperluaskan shell. Anda boleh menggunakan snapin, yang hanya binari dan dibangunkan dalam bahasa pengaturcaraan sepenuhnya seperti C #, atau anda boleh menggunakan modul, yang boleh binari serta skrip berasaskan.

    Pastikan anda membaca artikel sebelumnya dalam siri ini:

    • Ketahui Bagaimana Mengotomatikkan Windows dengan PowerShell
    • Belajar Menggunakan Cmdlets di PowerShell
    • Belajar Cara Menggunakan Objek di PowerShell
    • Pemformatan Pembelajaran, Penapisan dan Pembandingan di PowerShell
    • Belajarlah Menggunakan Remoting dalam PowerShell
    • Menggunakan PowerShell untuk Dapatkan Maklumat Komputer
    • Bekerja dengan Koleksi di PowerShell

    Dan tunggu selama siri sepanjang minggu.

    Snapin

    Snapin begitu tahun lepas. Seluruh jenaka mengetepikan, snapin tidak pernah ditangkap di kalangan komuniti PowerShell kerana kebanyakan skrip tidak pemaju dan anda hanya boleh menulis snapin dalam bahasa seperti C #. Walau bagaimanapun masih terdapat beberapa produk yang menggunakan snapin, contohnya Web Deploy. Untuk melihat apa yang ada snapin untuk digunakan dalam shell anda menggunakan arahan berikut:

    Get-PSSnapin -Daftar

    Untuk menggunakan arahan yang ditambahkan oleh snapin, anda perlu mengimportnya ke dalam sesi anda terlebih dahulu, dan anda boleh melakukannya seperti:

    Add-PSSnapin -Name WDeploySnapin3.0

    Pada ketika ini, anda akan mendapat ralat jika anda tidak memasang snapin Web Deploy. Jika anda memasangnya, seperti yang saya lakukan, maka ia akan diimport ke sesi anda. Untuk mendapatkan senarai perintah yang terdapat dalam snapin, anda boleh menggunakan cmdlet Get-Command:

    Get-Command -Module WDeploy *

    Nota: Secara teknikal, ini bukan modul, tetapi atas sebab tertentu anda masih perlu menggunakan parameter Modul.

    Modul

    Modul lebih baru dan merupakan cara ke hadapan. Mereka boleh menggunakan kedua-dua script menggunakan PowerShell dan dikodkan dalam bahasa seperti C #. Kebanyakan arahan terbina dalam juga diatur dalam modul. Untuk melihat senarai modul pada sistem anda, anda boleh menggunakan arahan berikut:

    Get-Module -ListAvailable

    Oleh kerana produk dikemas kini, rakan-rakan PowerShell mereka sedang dipindahkan ke modul. Sebagai contoh, SQL digunakan untuk mengambil snapin, tetapi kini terdiri daripada modul.

    Untuk menggunakan modul, anda perlu mengimportnya terlebih dahulu.

    Import-Module -Name SQLASCMDLETS

    Anda boleh menggunakan helah yang sama yang kami gunakan dengan snapin untuk melihat semua arahan yang modul ditambahkan pada shell.

    Jadi yang meninggalkan soalan: bagaimana PowerShell tahu apa snapin dan modul yang ada pada sistem anda? Nah, snapin adalah sedikit kesakitan dan perlu dipasang. Sebahagian daripada proses pemasangan termasuk membuat beberapa entri pendaftaran yang kelihatan PowerShell untuk mencari maklumat snapin. Modul, sebaliknya, boleh didaftarkan dengan shell dengan hanya meletakkannya di salah satu lokasi dalam pembolehubah persekitaran PSModulePath. Sebagai alternatif, anda hanya boleh menambah laluan kepada modul kepada pembolehubah persekitaran.

    ($ env: PSModulePath) .Split (";")

    Itu akan meludahkan kandungan pembolehubah itu. Perhatikan bahawa jika anda mempunyai modul seperti yang dipasang SQL, bagaimana ia mengubah suai pembolehubah untuk memasukkan lokasi modul SQL.

    Memuat Modul Auto

    PowerShell 3 memperkenalkan ciri baru hebat yang dilalui oleh beberapa nama. Tiada seorang pun daripada mereka yang rasmi, tetapi "Modul Pemuatan Automatik" adalah keterangan terbaiknya. Pada dasarnya, ia membolehkan anda menggunakan cmdlet yang dimiliki oleh modul luar tanpa mengimport secara jelas modul menggunakan cmdlet Import-Module. Untuk melihat ini, mula-mula keluarkan semua modul dari shell anda dengan menggunakan arahan berikut:

    Get-Module | Buang-Modul

    Anda boleh menyemak bahawa anda tidak mempunyai modul yang dimuatkan dengan menggunakan yang berikut:

    Get-Module

    Sekarang gunakan cmdlet yang tidak terdapat di perpustakaan teras. Test-Connection adalah yang baik:

    Test-Connection localhost

    Sekiranya anda menyemak modul dimuat semula, anda akan melihat bahawa ia memang memuat modul.

    Itu semua untuk lelaki hari ini, join kami esok untuk lebih.