Pagrindinis » kaip » Geek mokykla Sužinokite, kaip išplėsti „PowerShell“

    Geek mokykla Sužinokite, kaip išplėsti „PowerShell“

    „PowerShell“ siūlo du būdus, kaip išplėsti apvalkalą. Galite naudoti snapins, kurios yra tik dvejetainės ir sukurtos visavertėje programavimo kalba, pvz., C #, arba galite naudoti modulius, kurie gali būti tiek dvejetainiai, tiek scenarijai.

    Būtinai perskaitykite ankstesnius serijos straipsnius:

    • Sužinokite, kaip automatizuoti „Windows“ su „PowerShell“
    • Mokymasis naudoti „Cmdlet“ „PowerShell“
    • Mokymasis naudotis objektais „PowerShell“
    • Mokymosi formatavimas, filtravimas ir palyginimas „PowerShell“
    • Sužinokite, kaip naudoti „Remoting“ „PowerShell“
    • „PowerShell“ naudojimas kompiuterio informacijai gauti
    • Darbas su kolekcijomis „PowerShell“

    Visą savaitę laikykitės likusios serijos.

    Snapins

    Snapinai yra tokie praėjusiais metais. Visi anekdotai, „snapins“ niekada nebuvo sugauti tarp „PowerShell“ bendruomenės, nes dauguma scenarijų nėra kūrėjai ir jūs galite rašyti tik snapins kalbą kaip C #. Nepaisant to, vis dar yra keletas produktų, kurie naudoja „snapins“, pavyzdžiui, „Web Deploy“. Jei norite pamatyti, kokie snapins yra prieinami jums naudoti korpuse, naudokite šią komandą:

    Get-PSSnapin - registruotas

    Jei norite naudoti komandas, kurias pridėjo snapin, pirmiausia turite ją importuoti į savo sesiją, ir jūs galite tai padaryti taip:

    Pridėti-PSSnapin -Name WDeploySnapin3.0

    Šiuo metu gausite klaidą, jei neturite įdiegtos „Web Deploy“ snapin. Jei turite ją įdiegti, kaip ir aš, tai bus importuojama į jūsų sesiją. Jei norite gauti komandų, esančių snapin, sąrašą, galite tiesiog naudoti „Get-Command“ cmdlet:

    „Get-Command“ modulis „WDeploy“ *

    Pastaba: techniškai tai nėra modulis, bet dėl ​​kokių nors priežasčių vis tiek turite naudoti modulio parametrą.

    Moduliai

    Moduliai yra naujesni ir yra kelias į priekį. Jie gali būti rašomi naudojant „PowerShell“, taip pat gali būti koduojami kaip C # kalba. Dauguma įmontuotų komandų taip pat yra suskirstytos į modulius. Jei norite peržiūrėti modulių sąrašą savo sistemoje, galite naudoti šią komandą:

    „Get-Module -ListAvailable“

    Atnaujinus produktus, jų „PowerShell“ kolegos perkeliamos į modulius. Pvz., SQL anksčiau turėjo snapin, bet dabar jis susideda iš modulių.

    Kad galėtumėte naudoti modulį, pirmiausia turite jį importuoti.

    Importuoti-modulį - pavadinimą SQLASCMDLETS

    Jei norite peržiūrėti visas komandas, kurias modulis pridėjo prie apvalkalo, galite naudoti tą patį triuką, kurį naudojome su snapins.

    Tai palieka klausimą: kaip „PowerShell“ žino, kokie snapins ir moduliai yra jūsų sistemoje? Na, snapins yra šiek tiek skausmo ir turi būti įdiegta. Dalis diegimo proceso apima keletą registro įrašų, kuriuos „PowerShell“ ieško, kad surastų informaciją apie snapin. Kita vertus, moduliai gali būti užregistruoti su korpusu, paprasčiausiai juos įdedant į vieną iš PSModulePath aplinkos kintamojo vietų. Arba galite tiesiog pridėti kelią prie modulio į aplinkos kintamąjį.

    ($ env: PSModulePath) .Split („;“)

    Tai išsklaidys kintamojo turinį. Atkreipkite dėmesį, kad jei turite įdiegtą modulį, pavyzdžiui, SQL, kaip jis pakeitė kintamąjį, įtraukdamas SQL modulio vietą.

    Modulio automatinis pakrovimas

    „PowerShell 3“ pristatė naują nuostabią funkciją, kurią sudaro keli pavadinimai. Nė vienas iš jų nėra oficialus, tačiau „Modulio automatinis pakrovimas“ yra geriausias jo aprašymas. Iš esmės tai leidžia naudoti „cmdlet“, priklausančias išoriniam moduliui, aiškiai neįvedant modulio naudojant „cmdlet“ importo modulį. Jei norite tai pamatyti, pirmiausia išimkite visus modulius iš savo apvalkalo naudodami šią komandą:

    Gauti modulį Pašalinti modulį

    Tada galite patikrinti, ar neturite jokių modulių, naudodami:

    Gaukite modulį

    Dabar naudokite „cmdlet“, kuri nėra pagrindinėje bibliotekoje. „Test-Connection“ yra geras:

    „Test-Connection“ vietos nustatymas

    Jei dar kartą patikrinsite pakrautus modulius, pamatysite, kad jis iš tikrųjų įkelia modulį.

    Tai viskas šiandien, vaikinai, prisijunkite prie mūsų rytoj.