New-ModuleManifest
Erstellt ein neues Modulmanifest.
Syntax
New-ModuleManifest
[-Path] <string>
[-NestedModules <Object[]>]
[-Guid <guid>]
[-Author <string>]
[-CompanyName <string>]
[-Copyright <string>]
[-RootModule <string>]
[-ModuleVersion <version>]
[-Description <string>]
[-ProcessorArchitecture <ProcessorArchitecture>]
[-PowerShellVersion <version>]
[-ClrVersion <version>]
[-DotNetFrameworkVersion <version>]
[-PowerShellHostName <string>]
[-PowerShellHostVersion <version>]
[-RequiredModules <Object[]>]
[-TypesToProcess <string[]>]
[-FormatsToProcess <string[]>]
[-ScriptsToProcess <string[]>]
[-RequiredAssemblies <string[]>]
[-FileList <string[]>]
[-ModuleList <Object[]>]
[-FunctionsToExport <string[]>]
[-AliasesToExport <string[]>]
[-VariablesToExport <string[]>]
[-CmdletsToExport <string[]>]
[-DscResourcesToExport <string[]>]
[-CompatiblePSEditions <string[]>]
[-PrivateData <Object>]
[-Tags <string[]>]
[-ProjectUri <uri>]
[-LicenseUri <uri>]
[-IconUri <uri>]
[-ReleaseNotes <string>]
[-HelpInfoUri <string>]
[-PassThru]
[-DefaultCommandPrefix <string>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das New-ModuleManifest
Cmdlet erstellt eine neue Modulmanifestdatei (.psd1
), füllt ihre Werte auf und speichert die Manifestdatei im angegebenen Pfad.
Modulautoren können dieses Cmdlet verwenden, um ein Manifest für ihr Modul zu erstellen. Ein Modulmanifest ist eine .psd1
Datei, die eine Hashtabelle enthält. Die Schlüssel und Werte in der Hashtabelle beschreiben den Inhalt und die Attribute des Moduls, definieren die erforderlichen Komponenten und bestimmen, wie die Komponenten verarbeitet werden. Manifeste sind für ein Modul nicht erforderlich.
New-ModuleManifest
erstellt ein Manifest, das alle häufig verwendeten Manifestschlüssel enthält, sodass Sie die Standardausgabe als Manifestvorlage verwenden können. Öffnen Sie zum Hinzufügen oder Ändern von Werten oder zum Hinzufügen von Modulschlüsseln, die von diesem Cmdlet nicht hinzugefügt werden, die resultierende Datei in einem Text-Editor.
Jeder Parameter mit Ausnahme von Path und PassThru erstellt einen Modulmanifestschlüssel und dessen Wert.
In einem Modulmanifest ist nur der ModuleVersion-Schlüssel erforderlich. Sofern nicht in der Parameterbeschreibung angegeben, erstellt, wenn Sie einen Parameter im Befehl weglassen, New-ModuleManifest
eine Kommentarzeichenfolge für den zugeordneten Wert, der keine Auswirkung hat.
In PowerShell 2.0 New-ModuleManifest
werden Sie zusätzlich zu den erforderlichen Parameterwerten zur Eingabe der Werte häufig verwendeter Parameter aufgefordert, die nicht im Befehl angegeben sind. Ab PowerShell 3.0 werden nur dann Eingabeaufforderungen ausgeführt, New-ModuleManifest
wenn die erforderlichen Parameterwerte nicht angegeben sind.
Wenn Sie planen, Ihr Modul im PowerShell-Katalog zu veröffentlichen, muss das Manifest Werte für bestimmte Eigenschaften enthalten. Weitere Informationen finden Sie in der Katalogdokumentation unter Erforderliche Metadaten für Elemente, die im PowerShell-Katalog veröffentlicht wurden.
Beispiele
Beispiel 1: Create eines neuen Modulmanifests
In diesem Beispiel wird ein neues Modulmanifest in der Datei erstellt, die durch den Path-Parameter angegeben wird. Der PassThru-Parameter sendet die Ausgabe an die Pipeline und an die Datei.
Die Ausgabe zeigt die Standardwerte aller Schlüssel im Manifest.
New-ModuleManifest -Path C:\ps-test\Test-Module\Test-Module.psd1 -PassThru
#
# Module manifest for module 'Test-Module'
#
# Generated by: ContosoAdmin
#
# Generated on: 1/22/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 = '47179120-0bcb-4f14-8d80-f4560107f85c'
# Author of this module
Author = 'ContosoAdmin'
# Company or vendor of this module
CompanyName = 'Unknown'
# Copyright statement for this module
Copyright = '(c) ContosoAdmin. 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 = ''
} # 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 = ''
}
Beispiel 2: Create eines neuen Manifests mit einigen vorab aufgefüllten Einstellungen
In diesem Beispiel wird ein neues Modulmanifest erstellt. Er verwendet die Parameter PowerShellVersion und AliasesToExport, um Werte zu den entsprechenden Manifest-Schlüsseln hinzuzufügen.
New-ModuleManifest -PowerShellVersion 1.0 -AliasesToExport JKBC, DRC, TAC -Path C:\ps-test\ManifestTest.psd1
Beispiel 3: Create eines Manifests, das andere Module erfordert
In diesem Beispiel wird ein Zeichenfolgenformat verwendet, um den Namen des BitsTransfer-Moduls und das Hashtabellenformat anzugeben, um den Namen, eine GUID und eine Version des PSScheduledJob-Moduls anzugeben.
$moduleSettings = @{
RequiredModules = ("BitsTransfer", @{
ModuleName="PSScheduledJob"
ModuleVersion="1.0.0.0";
GUID="50cdb55f-5ab7-489f-9e94-4ec21ff51e59"
})
Path = 'C:\ps-test\ManifestTest.psd1'
}
New-ModuleManifest @moduleSettings
In diesem Beispiel wird gezeigt, wie sie die Zeichenfolgen- und Hashtabellenformate der Parameter ModuleList, RequiredModules und NestedModules verwenden. Sie können Zeichenfolgen und Hashtabellen in demselben Parameterwert kombinieren.
Beispiel 4: Create eines Manifests, das aktualisierbare Hilfe unterstützt
In diesem Beispiel wird der HelpInfoUri-Parameter verwendet, um einen HelpInfoUri-Schlüssel im Modulmanifest zu erstellen. Der Wert des Parameters und des Schlüssels muss mit http oder https beginnen. Dieser Wert zeigt dem „Aktualisierbare Hilfe“-System, wo die HelpInfo-XML-Informationsdatei für das Modul zu finden ist.
$moduleSettings = @{
HelpInfoUri = 'https://https://go.microsoft.com/fwlink/?LinkID=603'
Path = 'C:\ps-test\ManifestTest.psd1'
}
New-ModuleManifest @moduleSettings
Informationen zur aktualisierbaren Hilfe finden Sie unter about_Updatable_Help. Informationen zur XML-Datei HelpInfo finden Sie unter Unterstützung der aktualisierbaren Hilfe.
Beispiel 5: Abrufen von Modulinformationen
In diesem Beispiel wird gezeigt, wie Die Konfigurationswerte eines Moduls abgerufen werden. Die Werte im Modulmanifest spiegeln sich in den Werten der Eigenschaften des Modulobjekts wider.
Das Get-Module
Cmdlet wird verwendet, um das Modul Microsoft.PowerShell.Diagnostics mithilfe des List-Parameters abzurufen. Der Befehl sendet das Modul an das Format-List
Cmdlet, um alle Eigenschaften und Werte des Modulobjekts anzuzeigen.
Get-Module Microsoft.PowerShell.Diagnostics -List | Format-List -Property *
LogPipelineExecutionDetails : False
Name : Microsoft.PowerShell.Diagnostics
Path : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Diagnostics\Micro
soft.PowerShell.Diagnostics.psd1
Definition :
Description :
Guid : ca046f10-ca64-4740-8ff9-2565dba61a4f
HelpInfoUri : https://go.microsoft.com/fwlink/?LinkID=210596
ModuleBase : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Diagnostics
PrivateData :
Version : 3.0.0.0
ModuleType : Manifest
Author : Microsoft Corporation
AccessMode : ReadWrite
ClrVersion : 4.0
CompanyName : Microsoft Corporation
Copyright : Microsoft Corporation. All rights reserved.
DotNetFrameworkVersion :
ExportedFunctions : {}
ExportedCmdlets : {[Get-WinEvent, Get-WinEvent], [Get-Counter, Get-Counter], [Import-Counter,
Import-Counter], [Export-Counter, Export-Counter]...}
ExportedCommands : {[Get-WinEvent, Get-WinEvent], [Get-Counter, Get-Counter], [Import-Counter,
Import-Counter], [Export-Counter, Export-Counter]...}
FileList : {}
ModuleList : {}
NestedModules : {}
PowerShellHostName :
PowerShellHostVersion :
PowerShellVersion : 3.0
ProcessorArchitecture : None
Scripts : {}
RequiredAssemblies : {}
RequiredModules : {}
RootModule :
ExportedVariables : {}
ExportedAliases : {}
ExportedWorkflows : {}
SessionState :
OnRemove :
ExportedFormatFiles : {C:\Windows\system32\WindowsPowerShell\v1.0\Event.format.ps1xml,
C:\Windows\system32\WindowsPowerShell\v1.0\Diagnostics.format.ps1xml}
ExportedTypeFiles : {C:\Windows\system32\WindowsPowerShell\v1.0\GetEvent.types.ps1xml}
Parameter
-AliasesToExport
Gibt die Aliase an, die das Modul exportiert. Platzhalter sind zulässig.
Sie können diesen Parameter verwenden, um die Aliase einzuschränken, die vom Modul exportiert werden. Es kann Aliase aus der Liste der exportierten Aliase entfernen, aber der Liste keine Aliase hinzufügen.
Wenn Sie diesen Parameter weglassen, New-ModuleManifest
erstellt einen AliasesToExport-Schlüssel mit dem Wert *
(all), was bedeutet, dass alle im Modul definierten Aliase vom Manifest exportiert werden.
Type: | String[] |
Position: | Named |
Default value: | * (all) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Author
Gibt den Autor des Moduls an.
Wenn Sie diesen Parameter weglassen, New-ModuleManifest
wird ein Author-Schlüssel mit dem Namen des aktuellen Benutzers erstellt.
Type: | String |
Position: | Named |
Default value: | Name of the current user |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ClrVersion
Gibt die für das Modul erforderliche Mindestversion der Common Language Runtime (CLR) von Microsoft .NET Framework an.
Type: | Version |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CmdletsToExport
Gibt die Cmdlets an, die das Modul exportiert. Platzhalter sind zulässig.
Sie können diesen Parameter verwenden, um die Cmdlets einzuschränken, die vom Modul exportiert werden. Sie können Cmdlets aus der Liste der exportierten Cmdlets entfernen, aber der Liste keine Cmdlets hinzufügen.
Wenn Sie diesen Parameter weglassen, New-ModuleManifest
erstellt einen CmdletsToExport-Schlüssel mit dem Wert *
(all), was bedeutet, dass alle im Modul definierten Cmdlets vom Manifest exportiert werden.
Type: | String[] |
Position: | Named |
Default value: | * (all) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-CompanyName
Gibt das Unternehmen oder den Hersteller an, der das Modul erstellt hat.
Wenn Sie diesen Parameter weglassen, New-ModuleManifest
wird ein CompanyName-Schlüssel mit dem Wert "Unknown" erstellt.
Type: | String |
Position: | Named |
Default value: | "Unknown" |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CompatiblePSEditions
Gibt die kompatiblen PSEditionen des Moduls an. Informationen zu PSEdition finden Sie unter Module mit kompatiblen PowerShell-Editionen.
Type: | String[] |
Accepted values: | Desktop, Core |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Copyright
Gibt eine Urheberrechtserklärung für das Modul an.
Wenn Sie diesen Parameter weglassen, New-ModuleManifest
wird ein Copyright-Schlüssel mit dem Wert (c) <year> <username>. All rights reserved.
erstellt, wobei <year>
das aktuelle Jahr und <username>
der Wert des Schlüssels Author ist.
Type: | String |
Position: | Named |
Default value: | (c) <year> <username>. All rights reserved. |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultCommandPrefix
Gibt ein Präfix an, das den Nomen aller Befehle im Modul vorangestellt wird, wenn sie in eine Sitzung importiert werden. Geben Sie eine Präfixzeichenfolge ein. Präfixe verhindern Konflikte bei Befehlsnamen in der Sitzung eines Benutzers.
Modulbenutzer können dieses Präfix überschreiben, indem sie den Parameter Prefix des Import-Module
Cmdlets angeben.
Dieser Parameter wurde in PowerShell 3.0 eingeführt.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Beschreibt den Inhalt des Moduls.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DotNetFrameworkVersion
Gibt die für das Modul erforderliche Mindestversion des Microsoft .NET Framework an.
Type: | Version |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DscResourcesToExport
Gibt die Desired State Configuration (DSC)-Ressourcen an, die das Modul exportiert. Platzhalter sind zulässig.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-FileList
Gibt alle Elemente an, die im Modul enthalten sind.
Dieser Schlüssel ist als Modulinventar konzipiert. Die im Schlüssel aufgeführten Dateien werden bei der Veröffentlichung des Moduls enthalten, aber alle Funktionen werden nicht automatisch exportiert.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FormatsToProcess
Gibt die Formatierungsdateien (.ps1xml
) an, die beim Importieren des Moduls ausgeführt werden.
Wenn Sie ein Modul importieren, führt PowerShell das Update-FormatData
Cmdlet mit den angegebenen Dateien aus.
Da Formatierungsdateien nicht bereichsübergreifend sind, wirken sie sich auf alle Sitzungszustände in der Sitzung aus.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FunctionsToExport
Gibt die Funktionen an, die das Modul exportiert. Platzhalter sind zulässig.
Sie können diesen Parameter verwenden, um die Funktionen einzuschränken, die vom Modul exportiert werden. Es kann Funktionen aus der Liste der exportierten Aliase entfernen, aber keine Funktionen zur Liste hinzufügen.
Wenn Sie diesen Parameter weglassen, New-ModuleManifest
wird ein FunctionsToExport-Schlüssel mit dem Wert *
(all) erstellt, was bedeutet, dass alle im Modul definierten Funktionen vom Manifest exportiert werden.
Type: | String[] |
Position: | Named |
Default value: | * (all) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Guid
Gibt einen eindeutigen Bezeichner für das Modul an. Die GUID kann verwendet werden, um zwischen Modulen mit demselben Namen zu unterscheiden.
Wenn Sie diesen Parameter weglassen, New-ModuleManifest
erstellt einen GUID-Schlüssel im Manifest und generiert eine GUID für den Wert.
Um eine neue GUID in PowerShell zu erstellen, geben Sie ein [guid]::NewGuid()
.
Type: | Guid |
Position: | Named |
Default value: | A GUID generated for the module |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HelpInfoUri
Gibt die Internetadresse der HelpInfo-XML-Datei für das Modul an. Geben Sie einen URI (Uniform Resource Identifier) ein, der mit http oder https beginnt.
Die XML-Datei HelpInfo unterstützt das feature Updatable Help, das in PowerShell 3.0 eingeführt wurde. Es enthält Informationen über den Speicherort der herunterladbaren Hilfedateien für das Modul und die Versionsnummern der neuesten Hilfedateien für jedes unterstützte Gebietsschema.
Informationen zur aktualisierbaren Hilfe finden Sie unter about_Updatable_Help. Informationen zur XML-Datei HelpInfo finden Sie unter Unterstützung der aktualisierbaren Hilfe.
Dieser Parameter wurde in PowerShell 3.0 eingeführt.
Type: | String |
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.
Type: | Uri |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ModuleList
Listet alle Module auf, die in diesem Modul enthalten sind.
Geben Sie jeden Modulnamen als Zeichenfolge oder Hashtabelle mit den Schlüsseln ModuleName und ModuleVersion ein. Die Hashtabelle kann auch einen optionalen GUID-Schlüssel haben. Sie können Zeichenfolgen und Hashtabellen im Parameterwert kombinieren.
Dieser Schlüssel ist als Modulinventar konzipiert. Die module, die im Wert dieses Schlüssels aufgeführt sind, werden nicht automatisch verarbeitet.
Type: | Object[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ModuleVersion
Gibt die Modulversion an.
Dieser Parameter ist nicht erforderlich, aber im Manifest ist ein ModuleVersion-Schlüssel erforderlich. Wenn Sie diesen Parameter weglassen, New-ModuleManifest
wird ein ModuleVersion-Schlüssel mit dem Wert 1.0 erstellt.
Type: | Version |
Position: | Named |
Default value: | 1.0 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NestedModules
Gibt Skriptmodule (.psm1
) und Binäre Module (.dll
) an, die in den Sitzungszustand des Moduls importiert werden. Die Dateien im NestedModules-Schlüssel werden in der Reihenfolge ausgeführt, in der sie im Wert aufgeführt sind.
Geben Sie jeden Modulnamen als Zeichenfolge oder Hashtabelle mit den Schlüsseln ModuleName und ModuleVersion ein. Die Hashtabelle kann auch einen optionalen GUID-Schlüssel haben. Sie können Zeichenfolgen und Hashtabellen im Parameterwert kombinieren.
Geschachtelte Module enthalten i. d. R. Befehle, die das Stammmodul für die interne Verarbeitung benötigt.
Standardmäßig werden die Befehle in geschachtelten Modulen aus dem Sitzungsstatus des Moduls in den Sitzungszustand des Aufrufers exportiert, aber das Stammmodul kann die exportierten Befehle einschränken. Beispielsweise mithilfe eines Export-ModuleMember
Befehls.
Geschachtelte Module im Modulsitzungszustand sind für das Stammmodul verfügbar, werden jedoch nicht von einem Get-Module
Befehl im Sitzungszustand des Aufrufers zurückgegeben.
Skripts (.ps1
), die im Schlüssel NestedModules aufgeführt sind, werden im Sitzungszustand des Moduls ausgeführt, nicht im Sitzungszustand des Aufrufers. Zum Ausführen eines Skripts im Sitzungsstatus des Aufrufers führen Sie den Namen der Skriptdatei im Wert des ScriptsToProcess-Schlüssels im Manifest auf.
Type: | Object[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Schreibt das resultierende Modulmanifest in die Konsole und erstellt eine .psd1
Datei. Standardmäßig generiert dieses Cmdlet keine Ausgabe.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Gibt den Pfad und Dateinamen des neuen Modulmanifests an. Geben Sie einen Pfad und einen Dateinamen mit einer .psd1
Dateinamenerweiterung ein, z. B $pshome\Modules\MyModule\MyModule.psd1
. . Der Path-Parameter ist erforderlich.
Wenn Sie den Pfad zu einer vorhandenen Datei angeben, ersetzt die Datei ohne Warnung, New-ModuleManifest
es sei denn, die Datei verfügt über das schreibgeschützte Attribut.
Das Manifest sollte sich im Verzeichnis des Moduls befinden, und der Name der Manifestdatei sollte mit dem Namen des Modulverzeichnisses übereinstimmen, jedoch mit einer .psd1
Dateinamenerweiterung.
Hinweis
Variablen wie $PSHOME
oder $HOME
können nicht als Reaktion auf eine Aufforderung für einen Path-Parameterwert verwendet werden. Um eine Variable zu verwenden, schließen Sie den Path-Parameter in den Befehl ein.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PowerShellHostName
Gibt den Namen des PowerShell-Hostprogramms an, das das Modul benötigt. Geben Sie den Namen des Hostprogramms ein, z. B. Windows PowerShell ISE-Host oder ConsoleHost. Wildcards sind nicht zulässig.
Um den Namen eines Hostprogramms zu suchen, geben Sie im Programm ein $Host.Name
.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PowerShellHostVersion
Gibt die Mindestversion des PowerShell-Hostprogramms an, das mit dem Modul funktioniert. Geben Sie eine Versionsnummer an, z. B. 1.1.
Type: | Version |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PowerShellVersion
Gibt die Mindestversion von PowerShell an, die mit diesem Modul funktioniert. Sie können beispielsweise 1.0, 2.0 oder 3.0 als Wert des Parameters eingeben.
Type: | Version |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PrivateData
Gibt Daten an, die beim Importieren an das Modul übergeben werden.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ProcessorArchitecture
Gibt die Prozessorarchitektur an, die das Modul erfordert. Gültige Werte sind x86, AMD64, IA64, MSIL und None (unbekannt oder nicht angegeben).
Type: | ProcessorArchitecture |
Accepted values: | None, MSIL, X86, IA64, Amd64, Arm |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
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 Versionshinweise an.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RequiredAssemblies
Gibt die Assemblydateien (.dll
) an, die das Modul benötigt. Geben Sie die Namen der Assemblydateien ein.
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 aufzulisten, die das Modul erfordert. Dazu gehören auch Assemblys, die geladen werden müssen, um alle Formatierungs- oder Typdateien zu aktualisieren, die in den FormatsToProcess- oder TypesToProcess-Schlüsseln aufgeführt sind, auch wenn diese Assemblys auch als binäre Module in den NestedModules-Schlüsseln aufgeführt sind.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RequiredModules
Gibt die Module an, die im globalen Sitzungsstatus enthalten sein müssen. Wenn sich die erforderlichen Module nicht im globalen Sitzungszustand befinden, importiert PowerShell sie. Wenn die erforderlichen Module nicht verfügbar sind, schlägt der Import-Module
Befehl fehl.
Geben Sie jeden Modulnamen als Zeichenfolge oder Hashtabelle mit den Schlüsseln ModuleName und ModuleVersion ein. Die Hashtabelle kann auch einen optionalen GUID-Schlüssel haben. Sie können Zeichenfolgen und Hashtabellen im Parameterwert kombinieren.
In PowerShell 2.0 Import-Module
werden erforderliche Module nicht automatisch importiert. Es überprüft nur, ob sich die erforderlichen Module im globalen Sitzungsstatus befinden.
Type: | Object[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RootModule
Gibt die primäre Oder Stammdatei des Moduls an. Geben Sie den Dateinamen eines Skripts (.ps1
), eines Skriptmoduls (.psm1
), eines Modulmanifests(.psd1
), einer Assembly (.dll
), einer Cmdletdefinitions-XML-Datei (.cdxml
) oder eines Workflows (.xaml
) ein. Wenn das Modul importiert wird, werden die aus der Stammmodul-Datei exportierten Member in den Sitzungsstatus des Aufrufers importiert.
Wenn ein Modul über eine Manifestdatei verfügt und keine Stammdatei im RootModule-Schlüssel festgelegt wurde, wird das Manifest zur primären Datei für das Modul, und das Modul wird zu einem Manifestmodul (ModuleType = Manifest).
Um Elemente aus .psm1
oder .dll
Dateien in einem Modul mit einem Manifest zu exportieren, müssen die Namen dieser Dateien in den Werten der RootModule- oder NestedModules-Schlüssel im Manifest angegeben werden. Andernfalls werden ihre Member nicht exportiert.
Hinweis
In PowerShell 2.0 wurde dieser Schlüssel als ModuleToProcess bezeichnet. Sie können den RootModule-Parameternamen oder den zugehörigen ModuleToProcess-Alias verwenden.
Type: | String |
Aliases: | ModuleToProcess |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ScriptsToProcess
Gibt Skriptdateien (.ps1
) an, die im Sitzungszustand des Aufrufers ausgeführt werden, wenn das Modul importiert wird.
Sie können diese Skripte zur Vorbereitung einer Umgebung verwenden, wie Sie ein Anmeldeskript verwenden würden.
Um Skripte anzugeben, die im Sitzungsstatus des Moduls ausgeführt werden, verwenden Sie den NestedModules-Schlüssel.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Tags
Gibt ein Array von Tags an.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypesToProcess
Gibt die Typdateien (.ps1xml
) an, die beim Importieren des Moduls ausgeführt werden.
Wenn Sie das Modul importieren, führt PowerShell das Update-TypeData
Cmdlet mit den angegebenen Dateien aus.
Da Typdateien nicht bereichsübergreifend sind, wirken sie sich auf alle Sitzungszustände in der Sitzung aus.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VariablesToExport
Gibt die Variablen an, die das Modul exportiert. Platzhalter sind zulässig.
Sie können diesen Parameter verwenden, um die Variablen einzuschränken, die vom Modul exportiert werden. Es kann Variablen aus der Liste der exportierten Variablen entfernen, aber keine Variablen zur Liste hinzufügen.
Wenn Sie diesen Parameter weglassen, New-ModuleManifest
wird ein VariablesToExport-Schlüssel mit dem Wert *
(all) erstellt, was bedeutet, dass alle im Modul definierten Variablen vom Manifest exportiert werden.
Type: | String[] |
Position: | Named |
Default value: | * (all) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-WhatIf
Zeigt an, was bei New-ModuleManifest
Ausführungen passieren würde. 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
None
Sie können keine Eingabe an dieses Cmdlet übergeben.
Ausgaben
None or System.String
Standardmäßig New-ModuleManifest
generiert keine Ausgabe. Wenn Sie jedoch den PassThru-Parameter verwenden, wird ein System.String-Objekt generiert, das das Modulmanifest darstellt.
Hinweise
New-ModuleManifest
erstellt Modulmanifestdateien (.psd1
), die wie folgt codiert sind:
- PowerShell 6.0 unter Windows verwendet UTF16.
- PowerShell 6.0, die auf Nicht-Windows-Plattformen ausgeführt wird, verwendet UTF8NoBOM.
- PowerShell 6.1 und höher, die auf Windows- und Nicht-Windows-Plattformen ausgeführt werden, verwendet UTF8NoBOM.
Modulmanifeste sind normalerweise optional. Ein Modulmanifest ist jedoch erforderlich, wenn Sie eine Assembly exportieren möchten, die im globalen Assemblycache installiert ist.
Um Dateien im $pshome\Modules
Verzeichnis hinzuzufügen oder zu ändern, starten Sie PowerShell mit der Option Als Administrator ausführen .
Hinweis
Ab PowerShell 6.2 versucht PowerShell, alle DLL-Dateien zu laden, die in der FileList-Eigenschaft des Modulmanifests aufgeführt sind. Native DLLs in der FileList können im Prozess nicht geladen werden, und der Fehler wird ignoriert. Alle verwalteten DLLs werden in den Prozess geladen. Dieses Verhalten wurde in PowerShell 7.1 entfernt.
In PowerShell 2.0 waren viele Parameter von New-ModuleManifest
obligatorisch, obwohl sie in einem Modulmanifest nicht erforderlich waren. Ab PowerShell 3.0 ist nur der Path-Parameter obligatorisch.
Eine Sitzung ist ein instance der PowerShell-Ausführungsumgebung. Eine Sitzung kann mindestens einen Sitzungsstatus haben. Standardmäßig weist eine Sitzung nur einen globalen Sitzungsstatus auf, jedes importierte Modul verfügt jedoch über einen eigenen Sitzungsstatus. Sitzungsstatus erlauben das Ausführen der Befehle in einem Modul, ohne den globalen Sitzungsstatus zu beeinflussen.
Der Sitzungszustand des Aufrufers ist der Sitzungszustand, in den ein Modul importiert wird. Normalerweise bezieht er sich auf den globalen Sitzungszustand, aber wenn ein Modul geschachtelte Module importiert, ist der Aufrufer das Modul, und der Sitzungszustand des Aufrufers ist der Sitzungszustand des Moduls.