Daily Archives

One Article

Powershell

Utvide Powershell med mer funksjonalitet – Bruk av moduler og snapins

Posted by ragnar harper on

Bruk av moduler i Powershell 2.0

Man utvider funksjonaliteten i Powershell gjennom bruk av moduler og snapins. En modul er en pakke som inneholder Powershell kommandoer, slik som cmdlets, funksjoner, variabler, alias og såkalte providers. Providers gjør det mulig å aksessere datakilder gjennom stasjonsalias.

Moduler lar utviklere og administratorer dele opp og organisere Powershell koden i gjenbrukbare, komplette pakker. Kode fra en modul utføres i sin egen kontekst, og affekterer ikke tilstanden utenfor modulen.

Der snapins må installeres (dll basert installasjon) og registreres i registry, kan moduler enkelt kun kopieres inn uten noen form for installasjon.

Fordi moduler ikke må installeres, kan man bruke disse uten å være administrator.

Du kan altså benytte både moduler og snapins for å legge til kommandoer i ditt Powershell miljø. Moduler kan legge til alle typer kommandoer, cmdlets, providers, funksjoner, variabler, aliase og stasjoner. Snapins kan kun legge til cmdlets og providers.

Hvis du ønsker å se hvor en cmdlet er definert, kan du utføre følgende kommando:

get-command <cmdlet-name> | format-list -property verb, noun, pssnapin, module

For eksempel, hvis du ønsker å se hvor Get-Process er definert:

get-command get-process | format-list -property verb, noun, pssnapin, module

Moduler kan lastes fra hvor som helst, men det er enklest å benytte erklærte modulområder. Ved å bruke erklærte modulområder er det lettere å oppdage modulene, samt at de kan aktiveres uten at hele stien til modulen må angis. Det er i utgangspunktet to erklærte områder hvor moduler kan ligge:

· %System%\WindowsPowershell\1.0\Modules ($PSHome\Modules)

· %Userprofile%\Documents\WindowsPowershell\Modules

Du kan sjekke hvilke stier som er erklærte modulområder på ditt system ved å kjøre følgende kommando:

$env:psmodulepath

Modulfilene kan kopieres til brukerens modulområde, eller til systemets modulområde. Man kan også laste moduler ved å eksplisitt angi banen til modulen.

For å aktivere modulen bruker man kommandoen Import-Module og modulens navn. Man kan få en oversikt over tilgjenglige moduler ved å bruke kommandoen Get-Module –ListAvailable.