Module in der PowerShell Gallery veröffentlichen: Eine kurze Anleitung

Wir veröffentlichen unsere kostenlosen Produkte und ihre Updates nicht nur bei Github, sondern auch bei der PowerShell Gallery. Wie die Releases genau erfolgen, beschreiben wir in diesem Ratgeber mit Step-by-step-Anleitung.

Was ist die PowerShell Gallery?

Für die, die sie noch nicht kennen: Die PowerShell Gallery ist ein Repository, über das man Dritten eigene PowerShell-Module und Befehle über die Kommandozeile verfügbar machen kann. Es lassen sich damit ganz leicht neue Module installieren. Beispielsweise unser bekanntes und kostenfrei verfügbares AuditTAP.

Über die folgenden Befehle können Sie unser AuditTAP installieren:

Install-Module -Name ATAPAuditor

Install-Module -Name ATAPHtmlReport

Diese Module veröffentlichten wir bei der PowerShell Gallery

Die FB Pro GmbH stellte bislang vier verschiedene Module zur Verfügung. Diese erzielten innerhalb weniger Monate über 2.000 Downloads. Vielen Dank an die Community!

Pusblished modules overview

Wie die Veröffentlichung erfolgte, beschreiben wir in den folgenden Absätzen.

Publishen bei der PowerShell Gallery: unsere Tipps

Wie kann man bei der PowerShell Gallery etwas veröffentlichen? Dafür bietet Microsoft eine detaillierte Anleitung an. Jedoch fehlen hier Hinweise zu Fallstricken oder Tricks.

Mit diesem Ratgeber holen wir das Versäumnis von Microsoft nach. Wir bieten Ihnen eine einfache Schritt-für-Schritt-Anleitung für Ihren Schnelleinstieg. 

Tipp: Möchten Sie das Publishen nur testen, gibt es die Möglichkeit ein lokales Repository aufzusetzen.

Schritt 1: Notwendige Metadaten bereitstellen

Bevor Sie Ihr eigenes PowerShell-Modul veröffentlichen, ist eine Überprüfung der sogenannten “Manifest-Datei” sinnvoll.

Das bedeutet:

      • Passt die Versionsnummer?
      • Haben Sie den Autor, Ihren Unternehmensnamen und die Modul-Beschreibung angegeben?
      • Ist der Bereich unter PSData ausgefüllt?

Wichtig: Achten Sie darauf die richtige Versionsnummer einzutragen. Das ist eine Sache, die gerne vergessen wird.

Schritt 2: Code-Qualität prüfen

Gute Code-Qualität versteht sich von selbst. Trotzdem kann eine einfache, statische Code-Analyse hilfreich sein, beispielsweise über den PSScriptAnalyzer. Standardmäßig ist dieser nicht installiert. Holen Sie das nach.

Die Skript-Dateien können Sie mit dem folgenden Befehl analysieren:

Invoke-ScriptAnalyzer -Path .\PublishTestModule

Das sind nur die minimalen Qualitätsanforderungen. Microsoft beschreibt die Best Practices ausführlicher in seinen PowerShell Gallery Publishing Guidelines.

Schritt 3: API Key erstellen

Für die Veröffentlichung ist ein API Key erforderlich. Diesen können Sie hier erhalten, nachdem Sie sich mit einem Microsoft-Account bei PowerShell Gallery angemeldet haben.

Schritt 4: Veröffentlichung – Vorbereitung

Nachdem wir die Grundvoraussetzungen geschaffen haben, geht es jetzt ans Veröffentlichen.  Nun ja – nicht ganz.

Denn es kann zu einem Fehler kommen, wenn PowerShellGet bei Ihnen nicht in einer aktuellen Version vorhanden ist. Das sieht beispielsweise so aus:

Error when publishing with old PowerShellget version

Um den Fehler zu vermeiden hilft es, die aktuelle Version zu installieren. Die Version überprüfen Sie mit folgendem Befehl:

Get-Module -Name PowerShellGet -ListAvailable

Standardmäßig ist mit Windows 10 die Version 1.0.0.1 dabei. Aktuell gilt Version 2.2.4 (Stand: 17. Juli 2020). Bevor Sie eine neue Version installieren, sollten Sie NuGet aktualisieren.

Install-PackageProvider -Name NuGet -Force

Danach können Sie PowerShellGet so updaten:

Install-Module -Name PowerShellGet -Force

Jetzt sollten mindestens zwei Versionen bei Get-Module auftauchen:

      • die alte Version 1.0.0.1
      • und die neue Fassung

Bevor es weitergeht, bitte eine neue PowerShell-Sitzung öffnen.

Schritt 5: Die eigentliche Veröffentlichung

Das Publishen geschieht über den Befehl Publish-Module. Damit Sie sehen, was passiert, geben Sie am besten noch den -Verbose Parameter an.

Wenn Sie nicht ganz sicher sind, ob alles passt, können Sie den Befehl ohne Konsequenzen ausführen. Dafür geben Sie den Parameter-WhatIf mit.

Achtung: Einmal veröffentlichte Module können nicht mehr gelöscht werden!

Publish-Module -Path .\PublishTestModule -NuGetApiKey $apiKey -Verbose

Schritt 6: Veröffentlichung prüfen

Um zu schauen, ob Ihr Modul erfolgreich veröffentlicht wurde, können Sie auf einem System, auf dem das Modul noch nicht vorhanden ist, das Modul über die PowerShell Gallery installieren.

Das geht so:

Install-Module -Name PublishTestModule

Haben Sie noch Fragen?

Ist Ihnen die Veröffentlichung einwandfrei gelungen? Oder haben Sie noch Fragen dazu? Kein Problem – kontaktieren Sie uns einfach!

Kontakt aufnehmen

 

Bilder: Pexels, Microsoft

Schreibe einen Kommentar