PowerShell tarjoaa kaksi tapaa laajentaa kuoria. Voit käyttää joko snapinsia, jotka ovat vain binaarisia ja kehitetty täysipainoisella ohjelmointikielellä, kuten C #, tai voit käyttää moduuleja, jotka voivat olla binaarisia sekä kirjoituspohjaisia.
Muista lukea sarjan aiemmat artikkelit:
Ja pysy kuulolla koko sarjan koko viikon ajan.
Snapins ovat niin viime vuonna. Kaikki vitsaukset syrjään, snapins eivät koskaan ole todella kiinni PowerShell yhteisön, koska useimmat kirjoittajat eivät ole kehittäjiä ja voit kirjoittaa vain snapins on C # -kielellä. On kuitenkin olemassa joitain tuotteita, jotka käyttävät snapins, kuten esimerkiksi Web Deploy. Jotta näet, mitä snapinsit ovat käytettävissä shellissa, käytät seuraavaa komentoa:
Get-PSSnapin-Rekisteröidyt
Jos haluat käyttää snapin lisäämiä komentoja, sinun on ensin tuoda se istuntoosi ja voit tehdä sen seuraavasti:
Lisää-PSSnapin -Name WDeploySnapin3.0
Tässä vaiheessa saat virheilmoituksen, jos Web Deploy snapin -ohjelmaa ei ole asennettu. Jos sinulla on se asennettu, kuten minä, se tuodaan istuntoosi. Saadaksesi luettelon snapin käytettävissä olevista komennoista voit käyttää Get-Command-cmdlet-komentoa:
Get-Command -Module WDeploy *
Huomaa: Teknisesti tämä ei ole moduuli, mutta jostain syystä sinun on vielä käytettävä Moduulin parametria.
Moduulit ovat uudempia ja ovat keino eteenpäin. Ne voivat olla sekä komentosarjoja kuin PowerShell ja koodattu C # -kielellä. Suurin osa sisäänrakennetuista komennoista on myös moduuleja. Jotta voit tarkastella järjestelmän moduulien luetteloa, voit käyttää seuraavaa komentoa:
Get-Module -ListAvailable
Tuotteiden päivityksen myötä PowerShell-vastapuolet siirretään moduuleihin. Esimerkiksi SQLillä oli snapin, mutta se koostuu nyt moduuleista.
Jotta voit käyttää moduulia, sinun täytyy tuoda se ensin.
Tuonti-moduuli -Name SQLASCMDLETS
Voit käyttää samaa temppua, jota käytimme snapinsilla, jotta näet kaikki komennot, jotka moduuli lisäsi kuoriin.
Joten jättää kysymyksen: miten PowerShell tietää, mitä snapins ja moduulit sinulla on järjestelmässäsi? No, snapins ovat hieman tuskaa ja ne on asennettava. Osa asennusprosessista sisältää muutamia rekisterimerkintöjä, joita PowerShell etsii löytääkseen snapin-tietoja. Moduulit voidaan rekisteröidä kuorella yksinkertaisesti sijoittamalla ne yhteen PSModulePath-ympäristömuuttujan paikoista. Vaihtoehtoisesti voit lisätä moduulin polun ympäristömuuttujalle.
($ Env: PSModulePath) .Split ( ””)
Tämä loistaa muuttujan sisällön. Huomaa, että jos sinulla on asennettuna SQL-moduuli, miten se muokkasi muuttujan sisältämään SQL-moduulin sijainnin.
PowerShell 3 esitteli mahtavaa uutta ominaisuutta, joka kulkee muutamilla nimillä. Mikään niistä ei ole virallista, mutta "Module Auto Loading" on sen paras kuvaus. Pohjimmiltaan sen avulla voit käyttää cmdletteja, jotka kuuluvat ulkoiseen moduuliin ilman, että tuoda moduulia tuontia tuonti-moduulin cmdlet-koodilla. Nähdäksesi tämän, poista ensin kaikki moduulit kuoresta käyttäen seuraavaa komentoa:
Get-Module | Poista-moduuli
Sen jälkeen voit tarkistaa, että moduuleja ei ole ladattu seuraavilla tavoilla:
Get-moduuli
Käytä nyt cmdletä, joka ei ole ydinkirjastossa. Testikytkentä on hyvä:
Test-Connection localhost
Jos tarkistat ladatut moduulit uudelleen, näet, että se todella täytti moduulin.
Kaikki on tänään täällä, liittyä meihin huomenna enemmän.