Geek School Lær hvordan du utvider PowerShell
PowerShell tilbyr to måter for å utvide skallet. Du kan enten bruke snapins, som bare er binære og utviklet i et fullverdig programmeringsspråk som C #, eller du kan bruke moduler, som kan være både binære og scriptbaserte.
Husk å lese de forrige artiklene i serien:
- Lær hvordan du automatiserer Windows med PowerShell
- Lære å bruke Cmdlets i PowerShell
- Lære hvordan du bruker objekter i PowerShell
- Læreformatering, filtrering og sammenligning i PowerShell
- Lær å bruke Remoting i PowerShell
- Bruke PowerShell til å få informasjon om datamaskinen
- Arbeider med samlinger i PowerShell
Og hold deg innstilt for resten av serien hele uken.
snapin-moduler
Snapins er så i fjor. Alle vitser til side, snapins aldri virkelig fanget blant PowerShell samfunnet fordi de fleste scripters ikke er utviklere, og du kan bare skrive snapins på et språk som C #. Likevel er det fortsatt noen produkter som bruker snapins, for eksempel Web Deploy for eksempel. For å se hvilke snapins som er tilgjengelige for deg å bruke i skallet, bruker du følgende kommando:
Get-PSSnapin -Registered
For å bruke kommandoene som er lagt til med en snapin, må du først importere den i økten din, og du kan gjøre det slik:
Add-PSSnapin-Name WDeploySnapin3.0
På dette tidspunktet vil du få en feil hvis du ikke har installert Web Deploy snapin. Hvis du har den installert, som jeg gjør, så blir den importert til økten din. For å få en liste over kommandoer som er tilgjengelige i snapin, kan du bare bruke Get-Command cmdlet:
Get-Command -Module WDeploy *
Merk: Teknisk er dette ikke en modul, men av en eller annen grunn må du fortsatt bruke modulparameteren.
moduler
Modulene er nyere og er veien fremover. De kan både skannes med PowerShell, så vel som kodet på et språk som C #. De fleste av de innebygde kommandoene er også organisert i moduler. For å se en liste over moduler på systemet, kan du bruke følgende kommando:
Få-modul -ListeAvailable
Da produktene oppdateres, blir deres PowerShell-kolleger flyttet til moduler. For eksempel brukte SQL en snapin, men den består nå av moduler.
For å kunne bruke en modul må du først importere den.
Import-modul-navn SQLASCMDLETS
Du kan bruke det samme trikset vi brukte med snapins for å vise alle kommandoene som modulen legger til skallet.
Så det forlater spørsmålet: Hvordan vet PowerShell hva snapins og moduler du har på systemet ditt? Vel, snapins er litt vondt og må installeres. En del av installeringsprosessen inkluderer å opprette noen registeroppføringer som PowerShell ser på for å finne snapin-informasjon. Moduler kan derimot registreres med skallet ved å plassere dem på en av stedene i PSModulePath miljøvariabelen. Alternativt kan du bare legge til banen til modulen til miljøvariabelen.
($ Env: PSModulePath) .Split ( “;”)
Det vil spytte ut innholdet i variabelen. Legg merke til at hvis du har en modul som SQL installert, hvordan den endret variabelen for å inkludere SQL-modulens plassering.
Modul Automatisk lading
PowerShell 3 introduserte en fantastisk ny funksjon som går av noen få navn. Ingen av dem er offisielle, men "Modul Auto Loading" er den beste beskrivelsen av den. I utgangspunktet kan du bruke cmdlets som tilhører en ekstern modul uten å eksplisitt importere modulen ved hjelp av cmdlet Import-modulen. For å se dette, fjern først alle modulene fra skallet ditt ved å bruke følgende kommando:
Get-Module | Fjern-modul
Du kan da kontrollere at du ikke har noen moduler lastet ved å bruke følgende:
Get-Module
Bruk nå en cmdlet som ikke er i kjernebiblioteket. Test-tilkobling er en god en:
Test-tilkobling localhost
Hvis du sjekker dine lastede moduler igjen, vil du se at den faktisk lastet modulen.
Det er alt for i dag gutter, bli med oss i morgen for mer.