Hoe los je fouten op bij het laden van PowerShell-modules?

Heb je ooit die vervelende foutmelding gekregen bij het uitvoeren van een PowerShell-cmdlet, zoals: “De opdracht is gevonden, maar de module kan niet worden geladen”? Ja, dat is een veelvoorkomend probleem, vooral bij het werken met modules zoals ExchangeOnlineManagement om verbinding te maken met Microsoft 365. In feite blokkeert je systeem modules van derden of gedownloade modules, vaak vanwege het uitvoeringsbeleid van PowerShell of ontbrekende/beschadigde bestanden. Dit soort problemen overkomt veel mensen, zelfs bij een nieuwe installatie. Maar geen zorgen, er zijn een paar trucjes om het op te lossen.

Hoe los je fouten op bij het laden van PowerShell-modules?

Methode 1: Het uitvoeringsbeleid controleren en aanpassen

Dit is meestal het eerste wat je moet proberen. PowerShell heeft een beveiligingsfunctie genaamd ‘Uitvoeringsbeleid’ die bepaalt of scripts en modules kunnen worden uitgevoerd. Als dit is ingesteld op ‘Beperkt’, worden scripts helemaal niet geladen, wat de fout verklaart. Voer daarom deze opdracht uit:

Get-ExecutionPolicy

Als er ‘Beperkt’ staat, moet je dat wijzigen. Om dat tijdelijk (alleen voor deze sessie) te doen, voer je het volgende commando uit:

Set-ExecutionPolicy RemoteSigned -Scope Process

Hiermee kunt u scripts en modules uitvoeren binnen het huidige PowerShell-venster, wat vergelijkbaar is met het verlenen van toestemming om zijn werk te doen zonder de systeeminstellingen te wijzigen. Houd er rekening mee dat deze wijziging alleen voor deze sessie geldt, dus als u PowerShell sluit, moet u dit mogelijk opnieuw doen. U kunt de wijziging ook permanent maken voor uw gebruiker door het volgende commando uit te voeren:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Dit werkt voor alle sessies en lost meestal de foutmelding “module kan niet worden geladen” op. Zorg er wel voor dat u PowerShell als beheerder uitvoert als u een meer permissief beleid wilt instellen, zoals Onbeperkt of Omzeilen. Probeer daarna uw module opnieuw te importeren met:

Import-Module ExchangeOnlineManagement

Als het zonder fouten werkt, kun je aan de slag.

Methode 2: Controleer de modulebestanden en installeer de module indien nodig opnieuw.

Als je nog steeds foutmeldingen krijgt over ontbrekende bestanden of een beschadigde module, kan het een probleem met het downloaden of installeren zijn. Controleer eerst waar de modules zijn geïnstalleerd:

  • C:\Users\%username%\Documents\WindowsPowerShell\Modules— in je gebruikersprofiel
  • C:\Program Files\WindowsPowerShell\Modules— modules beschikbaar voor alle gebruikers
  • C:\Windows\system32\WindowsPowerShell\v1.0\Modules— ingebouwde Windows-modules

Als de map ExchangeOnlineManagement niet bestaat of er onvolledig uitziet, probeer deze dan volledig te verwijderen. Om dit veilig te doen, sluit u alle PowerShell-vensters, navigeert u naar de betreffende map en verwijdert u de map (of gebruik Verkenner).Nadat de map is verwijderd, installeert u de module opnieuw met:

Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser

Zorg ervoor dat uw systeem toegang heeft tot de broncode van de module. Soms blokkeren internetproblemen downloads, waardoor modules beschadigd lijken te zijn. In zeldzame gevallen kan het ook voorkomen dat de gedownloade module niet volledig is ondertekend of niet compatibel is, wat kan leiden tot fouten met betrekking tot niet-ondertekende scripts.

Methode 3: Handmatig gedownloade modulebestanden deblokkeren

Als u handmatig een module of bestand van internet hebt gedownload, kan Windows dit om veiligheidsredenen blokkeren. U ziet dan foutmeldingen over ondertekende bestanden of bestanden die “niet digitaal ondertekend” zijn. De oplossing? Deblokkeer het door de volgende opdracht uit te voeren:

Unblock-File.\ExchangeOnlineManagement.psm1

of wat de bestandsnaam ook is. Je kunt dit rechtstreeks in PowerShell doen, of met de rechtermuisknop op het bestand in Verkenner klikken, Eigenschappen kiezen en onderaan op Deblokkeren klikken. Soms is het voldoende om het bestand te deblokkeren en het opnieuw te proberen.

En ja, soms helpt het om PowerShell als beheerder uit te voeren als er problemen zijn met machtigingen. Houd er ook rekening mee dat de beveiligingsinstellingen van Windows lastig kunnen zijn en problemen kunnen veroorzaken totdat je ze hebt aangepast.

Dat is in principe alles wat nodig is om modules weer soepel te laten laden. Het is wel vervelend dat Windows het soms onnodig moeilijk maakt, maar met deze stappen is het probleem meestal opgelost.