Geek School: Lær hvordan du utvider PowerShell

Innholdsfortegnelse:

Geek School: Lær hvordan du utvider PowerShell
Geek School: Lær hvordan du utvider PowerShell

Video: Geek School: Lær hvordan du utvider PowerShell

Video: Geek School: Lær hvordan du utvider PowerShell
Video: Introduction to Cardiovascular Physiology: What People with Dysautonomia Should Know by Heart - YouTube 2024, April
Anonim
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.
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å datamaskininformasjon
  • 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:
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 det installert, som jeg gjør, så blir det importert til økten din. For å få en liste over kommandoer som er tilgjengelige i snapin, kan du bare bruke kommandoen 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.

Image
Image

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:

Get-Module –ListAvailable

Da produktene oppdateres, blir deres PowerShell-kolleger flyttet til moduler. For eksempel brukte SQL en snapin, men den består nå av moduler.
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.
For å kunne bruke en modul må du først importere den.

Import-Module -Name SQLASCMDLETS

Du kan bruke det samme trikset vi brukte med snapins for å se alle kommandoene som modulen legger til skallet.

Så det forlater spørsmålet: Hvordan vet PowerShell hvilke snapins og moduler du har på systemet ditt? Vel, snapins er litt vondt og må installeres. En del av installasjonsprosessen inkluderer å opprette noen registeroppføringer som PowerShell ser på for å finne snapin-informasjon. Moduler, derimot, kan 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.
Så det forlater spørsmålet: Hvordan vet PowerShell hvilke snapins og moduler du har på systemet ditt? Vel, snapins er litt vondt og må installeres. En del av installasjonsprosessen inkluderer å opprette noen registeroppføringer som PowerShell ser på for å finne snapin-informasjon. Moduler, derimot, kan 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.

Image
Image

Modul Automatisk lading

PowerShell 3 introduserte en fantastisk ny funksjon som går av noen få navn. Ingen av dem er offisielle, men "Module Auto Loading" er den beste beskrivelsen av den. I utgangspunktet kan du bruke cmdlets som tilhører en ekstern modul uten eksplisitt import av 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 | Remove-Module

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:
Bruk nå en cmdlet som ikke er i kjernebiblioteket. Test-tilkobling er en god en:

Test-Connection localhost

Anbefalt: