Geek School Naučite se razširiti PowerShell
PowerShell ponuja dva načina za razširitev lupine. Lahko uporabite dodatke, ki so samo binarni in razviti v polno razvitem programskem jeziku, kot je C #, ali pa uporabite module, ki so lahko binarni in skriptni..
Preberite prejšnje članke v seriji:
- Naučite se avtomatizirati Windows s PowerShell
- Učenje uporabe ukaznih vrstic v PowerShell
- Učenje uporabe objektov v programu PowerShell
- Učenje oblikovanja, filtriranja in primerjave v programu PowerShell
- Naučite se uporabljati možnost Remoting v PowerShell
- Uporaba programa PowerShell za pridobivanje informacij o računalniku
- Delo z zbirkami v programu PowerShell
In ostanite z nami do konca tedna.
Snapins
Snapini so tako lani. Vse šale na stran, snapins nikoli zares ujeti v skupnost PowerShell, ker je večina skriptarjev niso razvijalci in lahko pišete le snapins v jeziku, kot C #. Kljub temu še vedno obstajajo nekateri izdelki, ki uporabljajo snapine, na primer Web Deploy. Če želite videti, kateri dodatki so na voljo za uporabo v lupini, uporabite naslednji ukaz:
Get-PSSnapin -Prijavljen
Če želite uporabiti ukaze, ki jih doda čepek, ga morate najprej uvoziti v sejo in to lahko storite tako:
Add-PSSnapin -Name WDeploySnapin3.0
Na tej točki boste dobili napako, če nimate nameščenega snapin-a Web Deploy. Če jo namestite, kot jaz, bo uvoženo v vašo sejo. Če želite dobiti seznam ukazov, ki so na voljo v snap-u, lahko preprosto uporabite ukazno vrstico Get-Command:
Get-Command -Module WDeploy *
Opomba: Tehnično to ni modul, vendar iz nekega razloga še vedno morate uporabiti parameter Module.
Moduli
Moduli so novejši in so pot naprej. Lahko jih skriptirate z uporabo PowerShell-a in jih kodirate v jeziku, kot je C #. Večina vgrajenih ukazov je organizirana tudi v module. Če želite videti seznam modulov v sistemu, lahko uporabite naslednji ukaz:
Get-Module -ListAvailable
Ko se izdelki posodabljajo, se njihovi partnerji PowerShell preselijo v module. Na primer, SQL je imel nekdaj zlom, vendar je zdaj sestavljen iz modulov.
Če želite uporabiti modul, ga morate najprej uvoziti.
Uvozni modul - Ime SQLASCMDLETS
Lahko uporabite isti trik, ki smo ga uporabili z dodatki, da si ogledate vse ukaze, ki jih je modul dodal lupini.
Torej ostaja vprašanje: kako PowerShell ve, kakšni dodatki in moduli imate v sistemu? No, snapins so malo bolečine in jih je treba namestiti. Del namestitvenega postopka vključuje ustvarjanje nekaj vnosov v register, ki jih pregleduje PowerShell, da bi našli informacije o pomikanju. Moduli so po drugi strani registrirani z ukazno lupino tako, da jih preprosto namestite na eno od mest v spremenljivki okolja PSModulePath. Druga možnost je, da dodate pot v modul spremenljivki okolja.
($ env: PSModulePath) .Split (“;”)
To bo izpljunilo vsebino spremenljivke. Če imate nameščen modul, kot je SQL, je spremenil spremenljivko tako, da vključuje lokacijo modula SQL.
Samodejno nalaganje modula
PowerShell 3 je predstavil izjemno novo funkcijo, ki je podana z nekaj imeni. Nobeden od njih ni uraden, ampak "Modul Auto Loading" je najboljši opis. V bistvu vam omogoča uporabo ukazov »cmdlets«, ki pripadajo zunanjemu modulu, ne da bi izrecno uvažali modul z ukazom »cmdlet« uvoz-modul. Če želite to videti, najprej odstranite vse module iz lupine z naslednjim ukazom:
Get-Module | Odstrani modul
Nato lahko preverite, ali nimate naloženih modulov z naslednjim:
Get-Module
Zdaj uporabite ukaz »cmdlet«, ki ni v osrednji knjižnici. Testna povezava je dobra:
Test-Connection localhost
Če ponovno preverite naložene module, boste videli, da je modul dejansko naložil.
To je vse za danes, pridružite se nam jutri za več.