Freigeben über


Publish-Module

Veröffentlicht ein angegebenes Modul aus dem lokalen Computer in einem Onlinekatalog

Syntax

Publish-Module
       -Name <String>
       [-RequiredVersion <String>]
       [-NuGetApiKey <String>]
       [-Repository <String>]
       [-Credential <PSCredential>]
       [-FormatVersion <Version>]
       [-ReleaseNotes <String[]>]
       [-Tags <String[]>]
       [-LicenseUri <Uri>]
       [-IconUri <Uri>]
       [-ProjectUri <Uri>]
       [-Exclude <String[]>]
       [-Force]
       [-AllowPrerelease]
       [-SkipAutomaticTags]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Publish-Module
       -Path <String>
       [-NuGetApiKey <String>]
       [-Repository <String>]
       [-Credential <PSCredential>]
       [-FormatVersion <Version>]
       [-ReleaseNotes <String[]>]
       [-Tags <String[]>]
       [-LicenseUri <Uri>]
       [-IconUri <Uri>]
       [-ProjectUri <Uri>]
       [-Force]
       [-SkipAutomaticTags]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Beschreibung

Das Publish-Module Cmdlet veröffentlicht ein Modul in einem NuGet-basierten Onlinekatalog mithilfe eines API-Schlüssels, der als Teil des Profils eines Benutzers im Katalog gespeichert ist. Sie können entweder den Namen des Moduls angeben, das veröffentlicht werden soll, oder Sie geben den Pfad zum Ordner an, der das Modul enthält.

Wenn Sie ein Modul nach Name angeben, veröffentlicht das erste Modul, Publish-Module das durch Ausführen Get-Module -ListAvailable <Name>von gefunden wird. Wenn Sie eine Mindestversion eines zu veröffentlichenden Moduls angeben, Publish-Module veröffentlicht das erste Modul mit einer Version, die größer oder gleich der von Ihnen angegebenen Mindestversion ist.

Die Veröffentlichung eines Moduls erfordert Metadaten, die auf der Seite „Katalog“ des Moduls angezeigt werden. Die erforderlichen Metadaten enthalten den Modulnamen, die Version, die Beschreibung und den Autor. Obwohl die meisten Metadaten aus dem Modulmanifest stammen, müssen einige Metadaten in Publish-Module Parametern wie Tag, ReleaseNote, IconUri, ProjectUri und LicenseUri angegeben werden, da diese Parameter Mit Feldern in einem NuGet-basierten Katalog übereinstimmen.

Die Parameter, die Modulversionsnummern annehmen, erwarten Zeichenfolgen, die als Versionsnummern formatiert sind.

  • Standardversionsnummern haben ein Format, x.y.z wobei x, y und z Zahlen sind.
  • Vorabversionen weisen das Format x.y.z-<prerelease_label> auf, in dem der <prerelease_label> dieser Version eine beliebige Zeichenfolge zugewiesen ist.

Beispiele

Beispiel 1: Veröffentlichen eines Moduls

In diesem Beispiel wird MyDscModule im Onlinekatalog veröffentlicht, indem der API-Schlüssel verwendet wird, um das Onlinekatalogkonto des Modulbesitzers anzugeben. Wenn MyDscModule kein gültiges Manifestmodul ist, das einen Namen, eine Version, eine Beschreibung und einen Autor angibt, tritt ein Fehler auf.

Publish-Module -Name "MyDscModule" -NuGetApiKey "11e4b435-6cb4-4bf7-8611-5162ed75eb73"

Beispiel 2: Veröffentlichen eines Moduls mit Katalogmetadaten

In diesem Beispiel wird MyDscModule im Onlinekatalog veröffentlicht, indem der API-Schlüssel verwendet wird, um das Katalogkonto des Modulbesitzers anzugeben. Die zusätzlichen Metadaten werden auf der Webseite für das Modul im Katalog angezeigt. Der Besitzer fügt dem Modul zwei Suchtags hinzu, die es mit Active Directory in Verbindung stellen. Eine kurze Versionshinweise wird hinzugefügt. Wenn MyDscModule kein gültiges Manifestmodul ist, das einen Namen, eine Version, eine Beschreibung und einen Autor angibt, tritt ein Fehler auf.

$parameters = @{
    Name        = "MyDscModule"
    NuGetApiKey = "11e4b435-6cb4-4bf7-8611-5162ed75eb73"
    LicenseUri  = "http://contoso.com/license"
    Tag         = "Active Directory","DSC"
    ReleaseNote = "Updated the ActiveDirectory DSC Resources to support adding users."
}
Publish-Module @parameters

Parameter

-AllowPrerelease

Ermöglicht die Veröffentlichung von als Vorabversion markierten Modulen.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Fordert Sie zur Bestätigung auf, bevor Sie ausführen Publish-Module.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Gibt ein Benutzerkonto an, das über Rechte zum Veröffentlichen eines Moduls für einen angegebenen Paketanbieter oder eine angegebene Quelle verfügt.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Exclude

Definiert Dateien, die aus dem veröffentlichten Modul ausgeschlossen werden sollen.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Erzwingt die Ausführung des Befehls ohne Aufforderung zur Bestätigung durch den Benutzer.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatVersion

Akzeptiert nur gültige Werte, die vom ValidateSet-Attribut angegeben werden.

Weitere Informationen finden Sie unter ValidateSet-Attributdeklaration und ValidateSetAttribute.

Type:Version
Accepted values:2.0
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IconUri

Gibt die URL eines Symbols für das Modul an. Das angegebene Symbol wird auf der Katalogwebseite für das Modul angezeigt.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LicenseUri

Gibt die URL der Lizenzbedingungen für das Modul an, das Sie veröffentlichen möchten.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Gibt den Namen des Moduls an, das Sie veröffentlichen möchten. Publish-Module sucht nach dem angegebenen Modulnamen in $Env:PSModulePath.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NuGetApiKey

Gibt den API-Schlüssel an, den Sie zum Veröffentlichen eines Moduls im Onlinekatalog verwenden möchten. Der API-Schlüssel ist Teil Ihres Profils im Onlinekatalog und finden Sie im Katalog auf der Seite Ihres Benutzerkontos. Der API-Schlüssel ist NuGet-spezifische Funktionalität.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Gibt den Pfad zu dem Modul an, das Sie veröffentlichen möchten. Dieser Parameter akzeptiert den Pfad zu dem Ordner, der das Modul enthält. Der Ordner muss denselben Namen wie das Modul haben.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ProjectUri

Gibt die URL einer Webseite zu diesem Projekt an.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReleaseNotes

Gibt eine Zeichenfolge mit Versionshinweisen oder Kommentaren an, die Benutzern dieser Modulversion zur Verfügung stehen sollen.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Repository

Gibt den Anzeigenamen eines Repositorys an, das durch Ausführen Register-PSRepositoryvon registriert wurde. Das Repository muss über einen PublishLocation-Standort verfügen, bei dem es sich um einen gültigen NuGet-URI handelt. Die PublishLocation kann festgelegt werden, indem Sie ausführen Set-PSRepository.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RequiredVersion

Gibt die genaue Version eines einzelnen zu veröffentlichenden Moduls an.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipAutomaticTags

Entfernt Befehle und Ressourcen, die als Tags eingeschlossen werden. Überspringt das automatische Hinzufügen von Tags zu einem Modul.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Tags

Fügt dem modul, das Sie veröffentlichen, mindestens ein Tag hinzu. Beispieltags sind DesiredStateConfiguration, DSC, DSCResourceKit oder PSModule. Trennen Sie mehrere Tags durch Kommas.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zeigt an, was passieren würde, wenn der Publish-Module ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

String

PSCredential

Ausgaben

Object

Hinweise

PowerShell enthält die folgenden Aliase für Publish-Module:

  • Alle Plattformen:
    • pumo

Publish-Module wird in PowerShell 3.0 oder höheren Versionen von PowerShell, unter Windows 7 oder Windows 2008 R2 und höheren Versionen von Windows ausgeführt.

Wichtig

Ab April 2020 unterstützt der PowerShell-Katalog die TLS-Versionen (Transport Layer Security) 1.0 und 1.1 nicht mehr. Wenn Sie nicht TLS 1.2 oder höher verwenden, erhalten Sie beim Versuch des Zugriffs auf den PowerShell-Katalog eine Fehlermeldung. Mit dem folgenden Befehl können Sie sicherstellen, dass Sie TLS 1.2 verwenden:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Weitere Informationen finden Sie im PowerShell-Blog in der Ankündigung.

Die Veröffentlichung eines Moduls erfordert Metadaten, die auf der Seite „Katalog“ des Moduls angezeigt werden. Die erforderlichen Metadaten enthalten den Modulnamen, die Version, die Beschreibung und den Autor. Die meisten Metadaten stammen aus dem Modulmanifest, aber einige Metadaten können in Publish-Module Parametern wie Tag, ReleaseNote, IconUri, ProjectUri und LicenseUri angegeben werden. Weitere Informationen finden Sie unter Paketmanifestwerte, die sich auf die PowerShell-Katalog-Benutzeroberfläche auswirken.