PowerShell-modules: Een beginner’s handleiding voor het uitbreiden van functionaliteit

Automatisering van gebouwen met PowerShell kan in het begin overweldigend lijken, maar net als bij elke grote onderneming draait het allemaal om stap voor stap te werk gaan. Stel je PowerShell voor als een verzameling bouwstenen, met modules als de basis die de functionaliteit tot leven brengt.

In dit artikel ontdek je wat PowerShell-modules zijn, hoe je ze kunt vinden en hoe je ze kunt gebruiken om je automatiseringstaken een boost te geven. Van het beheer van virtuele machines tot het verbinden met cloudservices of het automatiseren van Active Directory, modules maken het allemaal mogelijk.

Lees verder om het volledige potentieel van PowerShell te ontsluiten en je taken nauwkeurig aan te pakken!

Beschikbare PowerShell-modules Ontdekken

PowerShell-modules zijn essentiële bouwstenen die de functionaliteit uitbreiden. Maar niet alle modules worden automatisch in je sessie geladen—ze blijven vaak op je systeem staan, wachtend om ontdekt te worden.

Om de modules die op je systeem zijn geïnstalleerd te verkennen, gebruik je de Get-Module opdracht:

Get-Module

Je zult misschien een korte lijst met modules opmerken. De reden hiervoor is dat Get-Module alleen modules toont die al in je sessie zijn geïmporteerd.

Om alle beschikbare modules op je systeem te zien, inclusief de modules die nog niet zijn geladen, voeg je de -ListAvailable parameter toe:

Get-Module -ListAvailable

Deze opdracht lijst alle modules op die beschikbaar zijn op je systeem, of ze nu in het geheugen zijn geladen of niet. PowerShell importeert automatisch modules terwijl je opdrachten van hen gebruikt, dus je hoeft ze meestal niet handmatig te laden.

Modules kunnen verschillende types zijn—script, binair of manifest.

Om modules op type te groeperen voor eenvoudigere inspectie, probeer dit:

gmo -ListAvailable | group ModuleType

Hier gebruikt u aliassen voor gemak.

Bijvoorbeeld, gmo is een verkorting voor Get-Module, en group is een alias voor Group-Object. Aliassen besparen tijd bij het uitvoeren van commando’s in de console.

Het onthullen van moduleversies en commandodetails

Elke module heeft een versie die zijn functieset of veranderingen in de loop van de tijd vertegenwoordigt. Versiebeheer stelt u in staat om updates te beheren of indien nodig terug te keren naar een eerdere versie.

Modules bevatten ook commando’s die toegankelijk zijn via de eigenschap ExportedCommands.

Om de commando’s in de module Microsoft.PowerShell.Management te bekijken, voert u het volgende uit:

gmo Microsoft.PowerShell.Management | Select-ExpandProperty ExportedCommands

Dit commando toont een lijst van beschikbare commando’s in de module.

Het lokaliseren van modulemappen

Modules werken niet magisch in PowerShell – ze bevinden zich in specifieke mappen op uw systeem en PowerShell moet weten waar ze te vinden zijn.

Om de locaties van beschikbare PowerShell-modules te tonen:

gmo -list

Gemeenschappelijke locaties zijn onder andere:

  • C:\Program Files\PowerShell\7\Modules
  • C:\Program Files\WindowsPowerShell\Modules
  • C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

Zelfs bij het gebruik van PowerShell Core kunnen modules uit Windows PowerShell-mappen nog steeds verschijnen omdat PowerShell Core ze kan gebruiken.

Modules hebben toegewezen categorieën op basis van hun eigenschap PSEdition, die de compatibiliteit aangeeft:

  • Core – Ontworpen voor PowerShell Core.
  • Bureau – Ontworpen voor Windows PowerShell.
  • Beide – Compatibel met beide edities.

Beheer van de PSModulePath Variabele

PowerShell doorzoekt niet automatisch je hele systeem naar modules—het vertrouwt op specifieke paden die zijn gedefinieerd door de PSModulePath omgevingsvariabele. Als een module zich niet in een van deze paden bevindt, zal PowerShell het niet vinden, zelfs als het systeem/jij het elders hebt geïnstalleerd.

Om de PSModulePath omgevingsvariabele te bekijken:

$env:PSModulePath

De variabele bevat een puntkomma-gescheiden lijst van mappen.

Voor eenvoudigere leesbaarheid, splits het in een array:

$env:PSModulePath -split ';'

PowerShell zoekt naar modules in:

  • Gebruikersniveau mappen (bijv. de Documenten map van je gebruikersprofiel).
  • Gedeelde mappen in Programma bestanden.
  • Systeemniveau mappen, zoals C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules.

Je kunt ook aangepaste mappen aan het zoekpad toevoegen:

$env:PSModulePath + ';C:\MyNewModulePath'
$env:PSModulePath

Deze wijziging is van toepassing op de huidige sessie en stuurt PowerShell aan om naar modules in het opgegeven pad te zoeken.

Conclusie

In dit artikel heb je ontdekt hoe je beschikbare modules kunt vinden, hun versies kunt bekijken, hun commando’s kunt inspecteren en hun opslagmappen kunt lokaliseren. Je hebt ook geleerd hoe je de PSModulePath omgevingsvariabele kunt gebruiken om aan te passen waar PowerShell naar modules zoekt.

Deze fundamentele vaardigheden stellen je in staat om het volledige potentieel van PowerShell te benutten voor jouw automatiseringstaken. Blijf deze kennis in de praktijk brengen. Begin met het verkennen van de modules die al beschikbaar zijn op jouw systeem en identificeer degene die aansluiten bij jouw huidige behoeften.

Met een dieper begrip van modules ben je klaar om complexe automatiseringsuitdagingen zelfverzekerd en efficiënt aan te pakken!

Source:
https://adamtheautomator.com/powershell-modules-guide/