Freigeben über


So schreiben Sie ein PowerShell-Modulmanifest

Nachdem Sie Ihr PowerShell-Modul geschrieben haben, können Sie ein optionales Modulmanifest hinzufügen, das Informationen zum Modul enthält. Sie können z. B. den Autor beschreiben, Dateien im Modul angeben (z. B. geschachtelte Module), Skripts ausführen, um die Umgebung des Benutzers anzupassen, Typ- und Formatierungsdateien zu laden, Systemanforderungen zu definieren und die Elemente einzuschränken, die das Modul exportiert.

Erstellen eines Modulmanifests

Ein Modulmanifest ist eine PowerShell-Datendatei (.psd1), die den Inhalt eines Moduls beschreibt und bestimmt, wie ein Modul verarbeitet wird. Die Manifestdatei ist eine Textdatei, die eine Hashtabelle mit Schlüsseln und Werten enthält. Sie verknüpfen eine Manifestdatei mit einem Modul, indem Sie das Manifest wie das Modul benennen und das Manifest im Stammverzeichnis des Moduls speichern.

Für einfache Module, die nur eine einzelne .psm1 oder binäre Assembly enthalten, ist ein Modulmanifest optional. Die Empfehlung besteht jedoch darin, nach Möglichkeit ein Modulmanifest zu verwenden, da sie hilfreich sind, um Ihren Code zu organisieren und Versionsverwaltungsinformationen zu verwalten. Außerdem ist ein Modulmanifest erforderlich, um eine Assembly zu exportieren, die im globalen Assemblycacheinstalliert ist. Ein Modulmanifest ist auch für Module erforderlich, die das Feature "Aktualisierbare Hilfe" unterstützen. Die aktualisierbare Hilfe verwendet den HelpInfoUri Schlüssel im Modulmanifest, um die Hilfeinformationsdatei (HelpInfo XML) zu finden, die den Speicherort der aktualisierten Hilfedateien für das Modul enthält. Weitere Informationen zur aktualisierbaren Hilfe finden Sie unter Unterstützende aktualisierbare Hilfe.

So erstellen und verwenden Sie ein Modulmanifest

  1. Die bewährte Methode zum Erstellen eines Modulmanifests besteht darin, das Cmdlet New-ModuleManifest zu verwenden. Sie können Parameter verwenden, um einen oder mehrere der Standardschlüssel und Werte des Manifests anzugeben. Die einzige Anforderung besteht darin, die Datei zu benennen. New-ModuleManifest erstellt ein Modulmanifest mit den angegebenen Werten und enthält die verbleibenden Schlüssel und deren Standardwerte. Wenn Sie mehrere Module erstellen müssen, verwenden Sie New-ModuleManifest, um eine Modulmanifestvorlage zu erstellen, die für Ihre verschiedenen Module geändert werden kann. Ein Beispiel für ein Standardmodulmanifest finden Sie im Beispielmodulmanifest.

    New-ModuleManifest -Path C:\myModuleName.psd1 -ModuleVersion "2.0" -Author "YourNameHere"

    Eine Alternative besteht darin, die Hashtabelle des Modulmanifests mithilfe der minimal erforderlichen Informationen, der ModuleVersion, manuell zu erstellen. Sie speichern die Datei mit demselben Namen wie Ihr Modul und verwenden die .psd1 Dateierweiterung. Anschließend können Sie die Datei bearbeiten und die entsprechenden Schlüssel und Werte hinzufügen.

  2. Fügen Sie alle zusätzlichen Elemente hinzu, die Sie in der Manifestdatei benötigen.

    Verwenden Sie zum Bearbeiten der Manifestdatei einen beliebigen Texteditor. Die Manifestdatei ist jedoch eine Skriptdatei, die Code enthält, daher können Sie sie in einer Skript- oder Entwicklungsumgebung bearbeiten, z. B. Visual Studio Code. Alle Elemente einer Manifestdatei sind optional, mit Ausnahme der ModuleVersion Nummer.

    Beschreibungen der Schlüssel und Werte, die Sie in ein Modulmanifest aufnehmen können, finden Sie in den Modulmanifestelementen Tabelle. Weitere Informationen finden Sie in den Parameterbeschreibungen im cmdlet New-ModuleManifest.

  3. Um Szenarien zu behandeln, die möglicherweise nicht von den Basismodulmanifestelementen abgedeckt werden, haben Sie die Möglichkeit, Ihrem Modulmanifest zusätzlichen Code hinzuzufügen.

    Bei Sicherheitsbedenken führt PowerShell nur eine kleine Teilmenge der verfügbaren Vorgänge in einer Modulmanifestdatei aus. Im Allgemeinen können Sie die if-Anweisung, arithmetische und Vergleichsoperatoren und die grundlegenden PowerShell-Datentypen verwenden.

  4. Nachdem Sie Ihr Modulmanifest erstellt haben, können Sie es testen, um zu bestätigen, dass alle im Manifest beschriebenen Pfade korrekt sind. Verwenden Sie Test-ModuleManifest, um das Modulmanifest zu testen.

    Test-ModuleManifest myModuleName.psd1

  5. Stellen Sie sicher, dass sich Ihr Modulmanifest auf der obersten Ebene des Verzeichnisses befindet, das Ihr Modul enthält.

    Wenn Sie Ihr Modul in ein System kopieren und importieren, verwendet PowerShell das Modulmanifest, um Ihr Modul zu importieren.

  6. Optional können Sie Ihr Modulmanifest direkt mit einem Aufruf von Import-Module- testen, indem Sie das Manifest selbst in punktieren.

    Import-Module .\myModuleName.psd1

Modulmanifestelemente

In der folgenden Tabelle werden die Elemente beschrieben, die Sie in ein Modulmanifest einschließen können.

Element Standardeinstellung BESCHREIBUNG
RootModule-
Typ: String
<empty string> Diesem Manifest zugeordnete Skriptmodul- oder Binärmoduldatei. In früheren Versionen von PowerShell wurde dieses Element als ModuleToProcess-bezeichnet.
Mögliche Typen für das Stammmodul können leer sein, wodurch ein Manifest Modul, der Name eines Skriptmoduls (.psm1) oder der Name eines binären Moduls (.exe oder .dll) erstellt wird. Wenn Sie den Namen eines Modulmanifests (.psd1) oder eine Skriptdatei (.ps1) in diesem Element platzieren, tritt ein Fehler auf.
Beispiel: RootModule = 'ScriptModule.psm1'
ModuleVersion-
Typ: Version
'0.0.1' Versionsnummer dieses Moduls. Wenn kein Wert angegeben ist, verwendet New-ModuleManifest den Standardwert. Die Zeichenfolge muss in den Typ Version konvertieren können, z. B. #.#.#.#. Import-Module lädt das erste Modul, das es auf dem $PSModulePath findet, der dem Namen entspricht, und hat mindestens so hoch wie ein ModuleVersion, als MinimumVersion Parameter. Verwenden Sie zum Importieren einer bestimmten Version den parameter RequiredVersion des Cmdlets Import-Module Cmdlet.
Beispiel: ModuleVersion = '1.0'
GUID
Typ: GUID
'<GUID>' ID, die zum eindeutigen Identifizieren dieses Moduls verwendet wird. Wenn kein Wert angegeben ist, New-ModuleManifest den Wert automatisch generiert. Sie können ein Modul zurzeit nicht importieren, indem Sie GUID-.
Beispiel: GUID = 'cfc45206-1e49-459d-a8ad-5b571ef94857'
Author
Typ: String
'<Current user>' Autor dieses Moduls. Wenn kein Wert angegeben ist, verwendet New-ModuleManifest den aktuellen Benutzer.
Beispiel: Author = 'AuthorNameHere'
CompanyName
Typ: String
'Unknown' Unternehmen oder Anbieter dieses Moduls. Wenn kein Wert angegeben ist, verwendet New-ModuleManifest den Standardwert.
Beispiel: CompanyName = 'Fabrikam'
Copyright
Typ: String
'(c) <Author>. All rights reserved.' Copyright-Erklärung für dieses Modul. Wenn kein Wert angegeben ist, verwendet New-ModuleManifest den Standardwert für den aktuellen Benutzer als <Author>. Verwenden Sie zum Angeben eines Autors den Parameter Author.
Beispiel: Copyright = '2019 AuthorName. All rights reserved.'
Beschreibung
Typ: String
<empty string> Beschreibung der von diesem Modul bereitgestellten Funktionen.
Beispiel: Description = 'This is the module's description.'
PowerShellVersion-
Typ: Version
<empty string> Mindestversion des PowerShell-Moduls, das für dieses Modul erforderlich ist. Gültige Werte sind 1.0, 2.0, 3.0, 4.0, 5.0, 5.1, 6.0, 6.1, 6.2, 7.0 und 7.1.
Beispiel: PowerShellVersion = '5.0'
PowerShellHostName-
Typ: String
<empty string> Der Name des powerShell-Hosts, der für dieses Modul erforderlich ist. Dieser Name wird von PowerShell bereitgestellt. Um den Namen eines Hostprogramms zu finden, geben Sie im Programm Folgendes ein: $Host.Name.
Beispiel: PowerShellHostName = 'ConsoleHost'
PowerShellHostVersion-
Typ: Version
<empty string> Für dieses Modul erforderliche Mindestversion des PowerShell-Hosts.
Beispiel: PowerShellHostVersion = '2.0'
DotNetFrameworkVersion-
Typ: Version
<empty string> Für dieses Modul erforderliche Mindestversion von Microsoft .NET Framework. Diese Voraussetzung gilt nur für die PowerShell Desktop Edition, z. B. Windows PowerShell 5.1, und gilt nur für .NET Framework-Versionen unter 4.5.
Beispiel: DotNetFrameworkVersion = '3.5'
CLRVersion-
Typ: Version
<empty string> Für dieses Modul erforderliche Mindestversion der Common Language Runtime (CLR) Diese Voraussetzung gilt nur für die PowerShell Desktop Edition, z. B. Windows PowerShell 5.1, und gilt nur für .NET Framework-Versionen unter 4.5.
Beispiel: CLRVersion = '3.5'
ProcessorArchitecture
Typ: ProcessorArchitecture
<empty string> Prozessorarchitektur (None, X86, Amd64), die von diesem Modul benötigt wird. Gültige Werte sind x86, AMD64, Arm, IA64, MSIL und None (unbekannt oder nicht angegeben).
Beispiel: ProcessorArchitecture = 'x86'
RequiredModules-
Typ: Object[]
@() Module, die vor dem Importieren dieses Moduls in die globale Umgebung importiert werden müssen. Dadurch werden alle aufgeführten Module geladen, es sei denn, sie wurden bereits geladen. Beispielsweise können einige Module bereits von einem anderen Modul geladen werden. Es ist möglich, eine bestimmte Version anzugeben, die mit RequiredVersion und nicht mit ModuleVersiongeladen werden soll. Wenn ModuleVersion verwendet wird, wird die neueste Version geladen, die mit mindestens der angegebenen Version verfügbar ist. Sie können Zeichenfolgen und Hashtabellen im Parameterwert kombinieren.
Beispiel: RequiredModules = @("MyModule", @{ModuleName="MyDependentModule"; ModuleVersion="2.0"; GUID="cfc45206-1e49-459d-a8ad-5b571ef94857"})
Beispiel: RequiredModules = @("MyModule", @{ModuleName="MyDependentModule"; RequiredVersion="1.5"; GUID="cfc45206-1e49-459d-a8ad-5b571ef94857"})
RequiredAssemblies
Typ: String[]
@() Assemblys, die vor dem Importieren dieses Moduls geladen werden müssen. Gibt die Assemblydateinamen (.dll) an, die das Modul benötigt.
PowerShell lädt die angegebenen Assemblys, bevor Typen oder Formate aktualisiert, geschachtelte Module importiert oder die Moduldatei importiert wird, die im Wert des RootModule-Schlüssels angegeben ist. Verwenden Sie diesen Parameter, um alle Assemblys auflisten, die das Modul benötigt.
Beispiel: RequiredAssemblies = @("assembly1.dll", "assembly2.dll", "assembly3.dll")
ScriptsToProcess-
Typ: String[]
@() Skriptdateien (.ps1), die beim Importieren des Moduls im Sitzungszustand des Aufrufers ausgeführt werden. Dies kann der globale Sitzungszustand oder bei geschachtelten Modulen der Sitzungszustand eines anderen Moduls sein. Sie können diese Skripts verwenden, um eine Umgebung wie ein Anmeldeskript vorzubereiten.
Diese Skripts werden ausgeführt, bevor eines der im Manifest aufgeführten Module geladen wird.
Beispiel: ScriptsToProcess = @("script1.ps1", "script2.ps1", "script3.ps1")
TypesToProcess-
Typ: String[]
@() Geben Sie Dateien (.ps1xml) ein, die beim Importieren dieses Moduls geladen werden sollen.
Beispiel: TypesToProcess = @("type1.ps1xml", "type2.ps1xml", "type3.ps1xml")
FormatsToProcess-
Typ: String[]
@() Formatieren Sie Dateien (.ps1xml), die beim Importieren dieses Moduls geladen werden sollen.
Beispiel: FormatsToProcess = @("format1.ps1xml", "format2.ps1xml", "format3.ps1xml")
NestedModules-
Typ: Object[]
@() Module, die als geschachtelte Module des in RootModule- angegebenen Moduls importiert werden sollen (Alias:ModuleToProcess).
Das Hinzufügen eines Modulnamens zu diesem Element ähnelt dem Aufrufen von Import-Module aus Ihrem Skript oder Assemblycode. Der Hauptunterschied bei der Verwendung einer Manifestdatei besteht darin, dass es einfacher ist, zu sehen, was Sie laden. Und wenn ein Modul nicht geladen werden kann, haben Sie das eigentliche Modul noch nicht geladen.
Zusätzlich zu anderen Modulen können Sie auch Skriptdateien (.ps1) hier laden. Diese Dateien werden im Kontext des Stammmoduls ausgeführt. Dies entspricht der Dot Sourcing des Skripts in Ihrem Stammmodul.
Beispiel: NestedModules = @("script.ps1", @{ModuleName="MyModule"; ModuleVersion="1.0.0.0"; GUID="50cdb55f-5ab7-489f-9e94-4ec21ff51e59"})
FunctionsToExport
Typ: String[]
@() Gibt die Funktionen an, die aus diesem Modul exportiert werden sollen, um optimale Leistung zu erzielen, keine Wildcards zu verwenden und den Eintrag nicht zu löschen, verwenden Sie ein leeres Array, wenn keine Funktionen zum Exportieren vorhanden sind. Standardmäßig werden keine Funktionen exportiert. Mit diesem Schlüssel können Sie die Funktionen auflisten, die vom Modul exportiert werden.
Das Modul exportiert die Funktionen in den Sitzungszustand des Aufrufers. Der Sitzungszustand des Aufrufers kann der globale Sitzungszustand oder bei geschachtelten Modulen der Sitzungszustand eines anderen Moduls sein. Beim Verketten geschachtelter Module werden alle Funktionen, die von einem geschachtelten Modul exportiert werden, in den globalen Sitzungszustand exportiert, es sei denn, ein Modul in der Kette schränkt die Funktion mithilfe des schlüssels FunctionsToExport ein.
Wenn das Manifest Aliase für die Funktionen exportiert, kann dieser Schlüssel Funktionen entfernen, deren Aliase im AliasesToExport Schlüssel aufgeführt sind, aber dieser Schlüssel kann der Liste keine Funktionsalias hinzufügen.
Beispiel: FunctionsToExport = @("function1", "function2", "function3")
CmdletsToExport
Typ: String[]
@() Gibt die Cmdlets an, die aus diesem Modul exportiert werden sollen, um optimale Leistung zu erzielen, keine Wildcards zu verwenden und den Eintrag nicht zu löschen, verwenden Sie ein leeres Array, wenn keine Cmdlets zum Exportieren vorhanden sind. Standardmäßig werden keine Cmdlets exportiert. Sie können diesen Schlüssel verwenden, um die Cmdlets aufzulisten, die vom Modul exportiert werden.
Der Sitzungszustand des Aufrufers kann der globale Sitzungszustand oder bei geschachtelten Modulen der Sitzungszustand eines anderen Moduls sein. Wenn Sie geschachtelte Module verketten, werden alle Cmdlets, die von einem geschachtelten Modul exportiert werden, in den globalen Sitzungszustand exportiert, es sei denn, ein Modul in der Kette schränkt das Cmdlet mithilfe des schlüssels CmdletsToExport ein.
Wenn das Manifest Aliase für die Cmdlets exportiert, kann dieser Schlüssel Cmdlets entfernen, deren Aliase im AliasesToExport Schlüssel aufgeführt sind, dieser Schlüssel kann der Liste jedoch keine Cmdletalias hinzufügen.
Beispiel: CmdletsToExport = @("Get-MyCmdlet", "Set-MyCmdlet", "Test-MyCmdlet")
VariablesToExport
Typ: String[]
'*' Gibt die Variablen an, die das Modul in den Sitzungszustand des Aufrufers exportiert. Platzhalterzeichen sind zulässig. Standardmäßig werden alle Variablen ('*') exportiert. Mit diesem Schlüssel können Sie die Variablen einschränken, die vom Modul exportiert werden.
Der Sitzungszustand des Aufrufers kann der globale Sitzungszustand oder bei geschachtelten Modulen der Sitzungszustand eines anderen Moduls sein. Wenn Sie geschachtelte Module verketten, werden alle Variablen, die von einem geschachtelten Modul exportiert werden, in den globalen Sitzungszustand exportiert, es sei denn, ein Modul in der Kette schränkt die Variable mithilfe des VariablesToExport Schlüssel ein.
Wenn das Manifest auch Aliase für die Variablen exportiert, kann dieser Schlüssel Variablen entfernen, deren Aliase im AliasesToExport Schlüssel aufgeführt sind, aber dieser Schlüssel kann der Liste keine variablen Aliase hinzufügen.
Beispiel: VariablesToExport = @('$MyVariable1', '$MyVariable2', '$MyVariable3')
AliasesToExport
Typ: String[]
@() Gibt die aus diesem Modul zu exportierenden Aliase an, um optimale Leistung zu erzielen, keine Wildcards zu verwenden und den Eintrag nicht zu löschen, verwenden Sie ein leeres Array, wenn keine Aliase zum Exportieren vorhanden sind. Standardmäßig werden keine Aliase exportiert. Mit diesem Schlüssel können Sie die Aliase auflisten, die vom Modul exportiert werden.
Das Modul exportiert die Aliase in den Sitzungszustand des Aufrufers. Der Sitzungszustand des Aufrufers kann der globale Sitzungszustand oder bei geschachtelten Modulen der Sitzungszustand eines anderen Moduls sein. Wenn Sie geschachtelte Module verketten, werden alle Aliase, die von einem geschachtelten Modul exportiert werden, letztendlich in den globalen Sitzungszustand exportiert, es sei denn, ein Modul in der Kette schränkt den Alias mithilfe des AliasesToExport Schlüssel ein.
Beispiel: AliasesToExport = @("MyAlias1", "MyAlias2", "MyAlias3")
DscResourcesToExport
Typ: String[]
@() Gibt DSC-Ressourcen an, die aus diesem Modul exportiert werden sollen. Platzhalter sind zulässig.
Beispiel: DscResourcesToExport = @("DscResource1", "DscResource2", "DscResource3")
ModuleList-
Typ: Object[]
@() Gibt alle Module an, die mit diesem Modul verpackt sind. Diese Module können mithilfe einer durch Trennzeichen getrennten Zeichenfolge oder als Hashtabelle mit ModuleName- und GUID--Schlüsseln eingegeben werden. Die Hashtabelle kann auch über einen optionalen ModuleVersion Schlüssel verfügen. Der schlüssel ModuleList dient als Modulbestand. Diese Module werden nicht automatisch verarbeitet.
Beispiel: ModuleList = @("SampleModule", "MyModule", @{ModuleName="MyModule"; ModuleVersion="1.0.0.0"; GUID="50cdb55f-5ab7-489f-9e94-4ec21ff51e59"})
FileList-
Typ: String[]
@() Liste aller Dateien, die mit diesem Modul verpackt sind. Wie bei ModuleList-ist FileList- eine Bestandsliste und wird andernfalls nicht verarbeitet.
Beispiel: FileList = @("File1", "File2", "File3")
PrivateData-
Typ: Object
@{...} Gibt alle privaten Daten an, die an das Stammmodul übergeben werden müssen, das vom RootModule- (Alias: ModuleToProcess) angegeben wird. PrivateData- ist eine Hashtabelle, die mehrere Elemente umfasst: Tags, LicenseUri, ProjectURI, IconUriReleaseNotes, Prerelease, RequireLicenseAcceptanceund ExternalModuleDependencies.
Tags
Typ: String[]
@() Tags helfen bei der Modulermittlung in Onlinekatalogen.
Beispiel: Tags = "PackageManagement", "PowerShell", "Manifest"
LicenseUri-
Typ: Uri
<empty string> Eine URL zur Lizenz für dieses Modul.
Beispiel: LicenseUri = 'https://www.contoso.com/license'
ProjectUri-
Typ: Uri
<empty string> Eine URL zur Hauptwebsite für dieses Projekt.
Beispiel: ProjectUri = 'https://www.contoso.com/project'
IconUri-
Typ: Uri
<empty string> Eine URL zu einem Symbol, das dieses Modul darstellt.
Beispiel: IconUri = 'https://www.contoso.com/icons/icon.png'
ReleaseNotes-
Typ: String
<empty string> Gibt die Versionshinweise des Moduls an.
Beispiel: ReleaseNotes = 'The release notes provide information about the module.
PreRelease-
Typ: String
<empty string> Dieser Parameter wurde in PowerShellGet 1.6.6 hinzugefügt. Eine PreRelease- Zeichenfolge, die das Modul als Vorabversion in Onlinekatalogen identifiziert.
Beispiel: PreRelease = 'alpha'
RequireLicenseAcceptance-
Typ: Boolean
$false Dieser Parameter wurde in PowerShellGet 1.5 hinzugefügt. Kennzeichnen, um anzugeben, ob für das Modul explizite Benutzerakzeptanz für Installation, Aktualisierung oder Speicherung erforderlich ist.
Beispiel: RequireLicenseAcceptance = $false
ExternalModuleDependencies-
Typ: String[]
@() Dieser Parameter wurde in PowerShellGet v2 hinzugefügt. Eine Liste der externen Module, von denen dieses Modul abhängig ist.
Beispiel: ExternalModuleDependencies = @("ExtModule1", "ExtModule2", "ExtModule3")
HelpInfoURI-
Typ: String
<empty string> HelpInfo-URI dieses Moduls.
Beispiel: HelpInfoURI = 'https://www.contoso.com/help'
DefaultCommandPrefix-
Typ: String
<empty string> Standardpräfix für Befehle, die aus diesem Modul exportiert wurden. Überschreiben Sie das Standardpräfix mithilfe von Import-Module -Prefix.
Beispiel: DefaultCommandPrefix = 'My'

Beispielmodulmanifest

Das folgende Beispielmodulmanifest wurde mit New-ModuleManifest in PowerShell 7 erstellt und enthält die Standardschlüssel und -werte.

#
# Module manifest for module 'SampleModuleManifest'
#
# Generated by: User01
#
# Generated on: 10/15/2019
#

@{

# Script module or binary module file associated with this manifest.
# RootModule = ''

# Version number of this module.
ModuleVersion = '0.0.1'

# Supported PSEditions
# CompatiblePSEditions = @()

# ID used to uniquely identify this module
GUID = 'b632e90c-df3d-4340-9f6c-3b832646bf87'

# Author of this module
Author = 'User01'

# Company or vendor of this module
CompanyName = 'Unknown'

# Copyright statement for this module
Copyright = '(c) User01. All rights reserved.'

# Description of the functionality provided by this module
# Description = ''

# Minimum version of the PowerShell engine required by this module
# PowerShellVersion = ''

# Name of the PowerShell host required by this module
# PowerShellHostName = ''

# Minimum version of the PowerShell host required by this module
# PowerShellHostVersion = ''

# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# DotNetFrameworkVersion = ''

# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# CLRVersion = ''

# Processor architecture (None, X86, Amd64) required by this module
# ProcessorArchitecture = ''

# Modules that must be imported into the global environment prior to importing this module
# RequiredModules = @()

# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()

# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()

# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()

# Format files (.ps1xml) to be loaded when importing this module
# FormatsToProcess = @()

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
# NestedModules = @()

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = @()

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()

# Variables to export from this module
VariablesToExport = '*'

# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = @()

# DSC resources to export from this module
# DscResourcesToExport = @()

# List of all modules packaged with this module
# ModuleList = @()

# List of all files packaged with this module
# FileList = @()

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{

    PSData = @{

        # Tags applied to this module. These help with module discovery in online galleries.
        # Tags = @()

        # A URL to the license for this module.
        # LicenseUri = ''

        # A URL to the main website for this project.
        # ProjectUri = ''

        # A URL to an icon representing this module.
        # IconUri = ''

        # ReleaseNotes of this module
        # ReleaseNotes = ''

        # Prerelease string of this module
        # Prerelease = ''

        # Flag to indicate whether the module requires explicit user acceptance for install/update/save
        # RequireLicenseAcceptance = $false

        # External dependent modules of this module
        # ExternalModuleDependencies = @()

    } # End of PSData hashtable

} # End of PrivateData hashtable

# HelpInfo URI of this module
# HelpInfoURI = ''

# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''

}

Siehe auch