PowerShell: Was ist eine .psm1 Datei?

Eine PSM1-Datei ist eine PowerShell-Moduldatei. PowerShell-Module sind Sammlungen von wiederverwendbaren Skripten, Cmdlets, Funktionen und Ressourcen, die in einer bestimmten Struktur organisiert sind. PSM1 ist die Dateierweiterung für PowerShell-Module, und sie enthält die PowerShell-Skripte und Funktionen, die in einem Modul definiert sind.

Die .psm1 Datei in PowerShell aufrufen

Um eine .psm1 Datei in PowerShell aufzurufen musst du folgendes tun. Ich habe auf meinem System PowerShell 7 installiert. Wenn du auch die 7er Version nutzt, kannst du den Pfad so übernehmen:

  1. Erstelle einen neuen Ordner mit passendem Namen für deine .psm1 Datei unter folgendem Pfad: C:\Program Files\PowerShell\7\Modules\*Dein neuer Ordner*
  2. Lege das Skript Beispiel.psm1 in den von dir neu angelegten Ordner.
Beispiel.psm1 Datei
  1. Starte jetzt PowerShell 7 und überprüfe, ob das Modul aufrufbar ist mit folgendem Befehl:
Get-Module -ListAvailable
  1. Suche dein Skript Beispiel in der Liste
PowerShell Module
  1. Jetzt einfach den Namen des Modules in PowerShell ausführen, in diesem Fall Beispiel eintippen und ausführen.

Die Moduldatei kann nicht ausgeführt werden

Wenn du die folgende Fehlermeldung bekommst, führe bitte die darunter stehenden Schritte aus. In diesem Fall wieder mit der Beispiel.psm1 Datei.

The 'Beispiel' command was found in the module 'Beispiel', but the module could not be loaded due to the following error: [File C:\program files\powershell\7\Modules\Beispiel\Beispiel.psm1 cannot be loaded. The file C:\program files\powershell\7\Modules\Beispiel\Beispiel.psm1 is not digitally signed. You cannot run this script on the current system. For more information about running scripts and setting execution policy, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.]
For more information, run 'Import-Module Beispiel'.

PowerShell führt in der Standard Konfiguration keine Skripte oder Module aus, die aus dem Internet heruntergeladen wurden.

  1. Führe als erstes PowerShell mit Admin Berechtigungen aus.
  2. Gebe ein Get-ExecutionPolicy
  3. Nun erhältst du die auf deinem System festgelegte ExecutionPolicy
  4. Die schnellste Möglichkeit ist es, die ExecutionPolicy auf unrestricted festzulegen. Das machst du in dem du folgenden Befehl nutzt. Anschließend kannst du das Modul dann ausführen.
Set-ExecutionPolicy -ExecutionPolicy unrestricted

Achtung: Bei dieser Methode werden alle Skripte ungefragt ausgeführt. Deshalb solltest du sicher sein, welche Skripte und Module du ausführst und ggf. die ExecutionPolicy anschließend wieder auf RemoteSignet umstellen mit folgendem Befehl:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Noch zur Info: Wenn du ein Skript regelmäßig benutzt, solltest du es digital signieren. Dann kannst du das Skript auch ausführen, wenn die ExecutionPolicy auf RemoteSigned festgelegt ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Hinweis von Real Cookie Banner