PowerShell en modules

PowerShell en modules
PowerShell en modules

PowerShell en Modules: Wat zijn ze en hoe laad je ze efficiënt?

PowerShell is een krachtige tool voor automatisering en systeembeheer, en een van de grootste troeven ervan zijn dus modules. Deze breiden de functionaliteit van PowerShell uit met bijvoorbeeld cmdlets, functies, variabelen en meer. Of je nu een webdesigner bent die taken wil automatiseren of een systeembeheerder die servers beheert, het begrijpen van modules is essentieel.

Wat is een PowerShell module?

Een module is dus een pakket met PowerShell-code dat specifieke functionaliteit biedt. Denk aan modules voor Active Directory, Azure, of zelfs voor het beheren van Windows-updates. Door modules te laden, krijg je toegang tot extra cmdlets die standaard niet beschikbaar zijn.

Voorbeeld: de module Az biedt toegang tot Azure-resources via PowerShell.

Hoe laad je een PowerShell module?

Het laden van een module is eenvoudig met de cmdlet Import-Module. Hier is dus een voorbeeld:

Import-Module Az

Als de module nog niet geïnstalleerd is, kun je deze eerst installeren via:

Install-Module Az -Scope CurrentUser

Tip: Gebruik -Scope CurrentUser om installatie zonder adminrechten mogelijk te maken.

Automatisch laden van PowerShell modules

Vanaf PowerShell 3.0 worden modules automatisch geladen wanneer je een cmdlet gebruikt die erin zit. Bijvoorbeeld:

Get-AzResourceGroup

Als de Az-module beschikbaar is op je systeem, wordt deze automatisch geladen.

PowerShell Modules beheren

Je kunt geïnstalleerde modules dus bekijken met:

Get-InstalledModule

Wil je weten welke modules momenteel geladen zijn in je sessie?

Get-Module

Module-updates

Modules worden regelmatig bijgewerkt. Je kunt ze updaten met:

Update-Module Az

Veelvoorkomende problemen

  • Module niet gevonden: Controleer of de module geïnstalleerd is en of je de juiste naam gebruikt.
  • Geen rechten: Gebruik -Scope CurrentUser of voer PowerShell uit als administrator.
  • Verouderde module: Update regelmatig om compatibiliteit en beveiliging te garanderen.

Laden van modules via een PowerShell functie

Function Confirm-Prerequisites {
    $modules = @("Az", "Microsoft.Graph")

    foreach ($module in $modules) {
        # Zoek geïnstalleerde module
        $installedModule = Get-InstalledModule -Name $module -ErrorAction SilentlyContinue

        if ($null -eq $installedModule) {
            Write-Host "$module niet gevonden. Installeren in CurrentUser..."
            Install-Module -Name $module -Force -Scope CurrentUser
        } else {
            $latestModule = Find-Module -Name $module
            if ($installedModule.Version -lt $latestModule.Version) {
                Write-Host "$module gevonden in $($installedModule.InstalledLocation) (versie $($installedModule.Version)). Updaten naar $($latestModule.Version)..."
                Update-Module -Name $module -Force
            } else {
                Write-Host "$module is up-to-date. Versie: $($installedModule.Version) (locatie: $($installedModule.InstalledLocation))"
            }
        }
    }

    # Check Azure CLI
    if (Get-Command az -ErrorAction SilentlyContinue) {
        Write-Host "Azure CLI is geïnstalleerd."
    } else {
        Write-Host "Azure CLI ontbreekt. Installeer via https://aka.ms/InstallAzureCli"
    }

    # Check Winget (niet op Windows Server)
    $osCaption = (Get-WmiObject -Class Win32_OperatingSystem).Caption
    if ($osCaption -match "Windows Server") {
        Write-Host "Winget-check overgeslagen (Windows Server)."
    } else {
        if (Get-Command winget -ErrorAction SilentlyContinue) {
            $wingetVersion = winget --version 2>&1 | Out-String
            if ($wingetVersion -match "v(\d+\.\d+\.\d+)") {
                Write-Host "Winget geïnstalleerd. Versie: $($matches[1])"
            } else {
                Write-Host "Winget geïnstalleerd maar versie onbekend."
            }
        } else {
            Write-Host "Winget ontbreekt. Installeer via https://aka.ms/GetWinget"
        }
    }

    Write-Host "Alle prerequisites gecontroleerd en bijgewerkt indien nodig."
}

Confirm-Prerequisites

Conclusie

Modules maken PowerShell flexibel en krachtig. Door te leren hoe je ze installeert, laadt en beheert, kun je je automatisering naar een hoger niveau tillen. Of je nu werkt met Azure, websites onderhoudt, of servers beheert — er is altijd een module die je werk makkelijker maakt. Als je PowerShell wilt leren beheersen, doe dan de cursus op Learn.

Wil je contact met mij opnemen, dan kan dat via het contact formulier.

0 Shares:
Geef een reactie

Uw e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

You May Also Like