Install-Module

Lädt ein oder mehrere Module aus einem Repository herunter und installiert sie auf dem lokalen Computer.

Syntax

Install-Module
       [-Name] <String[]>
       [-MinimumVersion <String>]
       [-MaximumVersion <String>]
       [-RequiredVersion <String>]
       [-Repository <String[]>]
       [-Credential <PSCredential>]
       [-Scope <String>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllowClobber]
       [-SkipPublisherCheck]
       [-Force]
       [-AllowPrerelease]
       [-AcceptLicense]
       [-PassThru]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-Module
       [-InputObject] <PSObject[]>
       [-Credential <PSCredential>]
       [-Scope <String>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllowClobber]
       [-SkipPublisherCheck]
       [-Force]
       [-AcceptLicense]
       [-PassThru]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Beschreibung

Das Cmdlet Install-Module ruft ein oder mehrere Module ab, die bestimmte Kriterien aus einem Onlinerepository erfüllen. Das Cmdlet überprüft, ob Suchergebnisse gültige Module sind, und kopiert die Modulordner an den Installationsspeicherort. Installierte Module werden nach der Installation nicht automatisch importiert. Sie können filtern, welches Modul basierend auf den minimalen, maximalen und exakten Versionen der angegebenen Module installiert ist.

Dies ist ein Proxy-Cmdlet für das Cmdlet Get-InstalledPSResource im Microsoft.PowerShell.PSResourceGet-. Weitere Informationen finden Sie unter Install-PSResource.

Beispiele

Beispiel 1: Suchen und Installieren eines Moduls

In diesem Beispiel wird ein Modul im Repository gefunden und das Modul installiert.

Find-Module -Name PowerShellGet | Install-Module

Die Find-Module verwendet den Parameter Name, um das PowerShellGet Modul anzugeben. Standardmäßig wird die neueste Version des Moduls aus dem Repository heruntergeladen. Das Objekt wird an das Cmdlet Install-Module weitergeleitet. Install-Module installiert das Modul für alle Benutzer in $env:ProgramFiles\PowerShell\Modules.

Beispiel 2: Installieren eines Moduls anhand des Namens

In diesem Beispiel wird die neueste Version des PowerShellGet Moduls installiert.

Install-Module -Name PowerShellGet

Die Install-Module verwendet den Parameter Name, um das PowerShellGet Modul anzugeben. Standardmäßig wird die neueste Version des Moduls aus dem Repository heruntergeladen und installiert.

Beispiel 3: Installieren eines Moduls mit seiner Mindestversion

In diesem Beispiel wird die Mindestversion des PowerShellGet Moduls installiert. Der parameter MinimumVersion gibt die niedrigste Version des Moduls an, das installiert werden soll. Wenn eine neuere Version des Moduls verfügbar ist, wird diese Version für alle Benutzer heruntergeladen und installiert.

Install-Module -Name PowerShellGet -MinimumVersion 2.0.1

Die Install-Module verwendet den Parameter Name, um das PowerShellGet Modul anzugeben. Der parameter MinimumVersion gibt an, dass version 2.0.1 aus dem Repository heruntergeladen und installiert wird. Da version 2.0.4 verfügbar ist, wird diese Version für alle Benutzer heruntergeladen und installiert.

Beispiel 4: Installieren einer bestimmten Version eines Moduls

In diesem Beispiel wird eine bestimmte Version des PowerShellGet- Moduls installiert.

Install-Module -Name PowerShellGet -RequiredVersion 2.0.0

Die Install-Module verwendet den Parameter Name, um das PowerShellGet Modul anzugeben. Der parameter RequiredVersion gibt an, dass version 2.0.0 für alle Benutzer heruntergeladen und installiert wird.

Beispiel 5: Installieren eines Moduls nur für den aktuellen Benutzer

In diesem Beispiel wird die neueste Version eines Moduls nur für den aktuellen Benutzer heruntergeladen und installiert.

Install-Module -Name PowerShellGet -Scope CurrentUser

Die Install-Module verwendet den Parameter Name, um das PowerShellGet Modul anzugeben. Install-Module lädt die neueste Version von PowerShellGet in das Verzeichnis des aktuellen Benutzers $HOME\Documents\PowerShell\Modulesherunter und installiert sie.

Beispiel 6: Installieren der neuesten Vorabversion eines Moduls

In diesem Beispiel wird gezeigt, wie Sie die neueste Version eines Moduls installieren, wenn diese Version eine Vorabversion ist. Für die Installation einer Vorabversion ist der parameter AllowPrerelease erforderlich.

Install-Module -Name Microsoft.PowerShell.Crescendo -AllowPrerelease

Mit dieser Methode erhalten Sie die neueste verfügbare Version. Wenn die neueste Version keine Vorabversion ist, erhalten Sie die neueste stabile Version des Moduls.

Beispiel 7: Installieren einer bestimmten Vorabversion eines Moduls

In diesem Beispiel wird gezeigt, wie Sie eine bestimmte Vorabversion eines Moduls installieren. Das cmdlet Find-Module kann verwendet werden, um Vorabversionen von Modulen im PowerShell-Katalog zu finden.

Vorabversionen weisen ein Format von <version_number>-<prerelease_label>auf.

Find-Module PSReadLine -AllVersions -AllowPrerelease | Select-Object -First 5

Version        Name             Repository       Description
-------        ----             ----------       -----------
2.2.6          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.5          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.4-beta1    PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.3          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.2          PSReadLine       PSGallery        Great command line editing in the PowerS…

Install-Module -Name PSReadLine -RequiredVersion 2.2.4-beta1 -AllowPrerelease

Verwenden Sie die im PowerShell-Katalog angezeigte Version für den Wert des parameters RequiredVersion.

Parameter

-AcceptLicense

Für Module, die eine Lizenz erfordern, AcceptLicense den Lizenzvertrag während der Installation automatisch akzeptiert. Weitere Informationen finden Sie unter Module, die Lizenzakzeptanzerfordern.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-AllowClobber

Überschreibt Warnmeldungen zu Installationskonflikten zu vorhandenen Befehlen auf einem Computer. Überschreibt vorhandene Befehle mit demselben Namen wie Befehle, die von einem Modul installiert werden. AllowClobber und Force können zusammen in einem Install-Module-Befehl verwendet werden.

Das Proxy-Cmdlet transformiert den Wert dieses Parameters in den NoClobber Parameter des Cmdlets Install-PSResource.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-AllowPrerelease

Ermöglicht ihnen die Installation eines Moduls, das als Vorabversion gekennzeichnet ist.

Das Proxy-Cmdlet ordnet diesen Parameter dem parameter Prerelease Parameter von Install-PSResourcezu.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Confirm

Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet Install-Module ausführen.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Credential

Gibt ein Benutzerkonto an, das über Berechtigungen zum Installieren eines Moduls für einen angegebenen Paketanbieter oder eine angegebene Quelle verfügt.

Typ:PSCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Force

Das Proxy-Cmdlet ignoriert diesen Parameter, da er von Install-PSResourcenicht unterstützt wird.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputObject

Wird für Pipelineeingaben verwendet. Ein Fehler wird ausgelöst, wenn ein direkt an InputObjectbereitgestellter Wert zurückgegeben wird. Verwenden Sie die Pipeline, um Objekte mit dem parameter InputObject zu übergeben.

Typ:PSObject[]
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-MaximumVersion

Das Proxy-Cmdlet verwendet den Wert dieses Parameters, um eine NuGet-Versionssuchzeichenfolge für die Verwendung mit dem parameter Version von Install-PSResourcezu erstellen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-MinimumVersion

Das Proxy-Cmdlet verwendet den Wert dieses Parameters, um eine NuGet-Versionssuchzeichenfolge für die Verwendung mit dem parameter Version von Install-PSResourcezu erstellen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Name

Gibt die genauen Namen von Modulen an, die aus dem Onlinekatalog installiert werden sollen. Eine durch Trennzeichen getrennte Liste von Modulnamen wird akzeptiert. Der Modulname muss mit dem Modulnamen im Repository übereinstimmen. Verwenden Sie Find-Module, um eine Liste der Modulnamen abzurufen.

Typ:String[]
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-PassThru

Bei Verwendung des PassThru--Parameters gibt Install-Module ein PSRepositoryItemInfo-Objekt für das Modul aus. Dies sind die gleichen Informationen, die Sie aus dem Cmdlet Find-Module abrufen.

Typ:SwitchParameter
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Proxy

Das Proxy-Cmdlet ignoriert diesen Parameter, da er von Install-PSResourcenicht unterstützt wird.

Typ:Uri
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-ProxyCredential

Das Proxy-Cmdlet ignoriert diesen Parameter, da er von Install-PSResourcenicht unterstützt wird.

Typ:PSCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Repository

Verwenden Sie den parameter Repository, um den Namen des Repositorys anzugeben, aus dem ein Modul heruntergeladen und installiert werden soll. Wird verwendet, wenn mehrere Repositorys registriert sind. Gibt den Namen eines registrierten Repositorys im Install-Module-Befehl an. Verwenden Sie Register-PSRepository, um ein Repository zu registrieren. Verwenden Sie Get-PSRepository, um registrierte Repositorys anzuzeigen.

Typ:String[]
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-RequiredVersion

Das Proxy-Cmdlet verwendet den Wert dieses Parameters, um eine NuGet-Versionssuchzeichenfolge für die Verwendung mit dem parameter Version von Install-PSResourcezu erstellen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Scope

Gibt den Installationsumfang des Moduls an. Die zulässigen Werte für diesen Parameter sind AllUsers und CurrentUser.

Der AllUsers Bereich installiert Module an einem Speicherort, auf den alle Benutzer des Computers zugreifen können:

$env:ProgramFiles\PowerShell\Modules

Die CurrentUser installiert Module an einem Speicherort, auf den nur der aktuelle Benutzer des Computers zugreifen kann. Zum Beispiel:

$HOME\Documents\PowerShell\Modules

Wenn kein Bereichs- definiert ist, wird die Standardeinstellung basierend auf der PowerShellGet-Version festgelegt.

  • In PowerShellGet 1.x-Versionen ist die Standardeinstellung AllUsers, für die eine Erhöhung für die Installation erforderlich ist.
  • Für PowerShellGet-Versionen 2.0.0 und höher in PowerShell 6 oder höher:
    • Der Standardwert ist CurrentUser-, der keine Erhöhung für die Installation erfordert.
    • Wenn Sie in einer Sitzung mit erhöhten Rechten ausgeführt werden, ist die Standardeinstellung AllUsers.
Typ:String
Zulässige Werte:CurrentUser, AllUsers
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-SkipPublisherCheck

Das Proxy-Cmdlet wandelt diesen Parameter in AuthenticodeCheck- um, bevor Install-PSResourceaufgerufen wird.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WhatIf

Zeigt, was passiert, wenn ein Install-Module Befehl ausgeführt wurde. Das Cmdlet wird nicht ausgeführt.

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

PSRepositoryItemInfo

Find-Module erstellt PSRepositoryItemInfo Objekte, die an Install-Modulegesendet werden können.

String[]

PSObject[]

String

PSCredential

Uri

Ausgaben

Microsoft.PowerShell.Commands.PSRepositoryItemInfo

Bei Verwendung des PassThru--Parameters gibt Install-Module ein PSRepositoryItemInfo-Objekt für das Modul aus. Dies sind die gleichen Informationen, die Sie aus dem Cmdlet Find-Module abrufen.

Hinweise

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

  • Alle Plattformen:
    • inmo

Install-Module unter PowerShell 5.0 oder höher, unter Windows 7 oder Windows 2008 R2 und höheren Versionen von Windows ausgeführt wird.

Wichtig

Ab April 2020 unterstützt der PowerShell-Katalog die Tls-Versionen 1.0 und 1.1 nicht mehr. Wenn Sie TLS 1.2 oder höher nicht verwenden, wird beim Versuch, auf den PowerShell-Katalog zuzugreifen, eine Fehlermeldung angezeigt. Verwenden Sie den folgenden Befehl, um sicherzustellen, dass Sie TLS 1.2 verwenden:

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

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

Als bewährte Methode für die Sicherheit sollten Sie den Code eines Moduls auswerten, bevor Sie cmdlets oder Funktionen zum ersten Mal ausführen. Um die Ausführung von Modulen zu verhindern, die schädlichen Code enthalten, werden installierte Module nach der Installation nicht automatisch importiert.

Wenn der durch den parameter Name Parameter angegebene Modulname im Repository nicht vorhanden ist, gibt Install-Module einen Fehler zurück.

Verwenden Sie zum Installieren mehrerer Module den parameter Name und geben Sie ein durch Trennzeichen getrenntes Array von Modulnamen an. Wenn Sie mehrere Modulnamen angeben, können Sie MinimumVersion, MaximumVersionoder RequiredVersionnicht verwenden. Find-Module erstellt PSRepositoryItemInfo Objekte, die an Install-Modulegesendet werden können. Die Pipeline ist eine weitere Möglichkeit, mehrere Module anzugeben, die in einem einzigen Befehl installiert werden sollen.

Standardmäßig werden Module für den Bereich AllUsers in $env:ProgramFiles\PowerShell\Modulesinstalliert. Die Standardeinstellung verhindert Verwirrung, wenn Sie PowerShell Desired State Configuration (DSC)-Ressourcen installieren.

Eine Modulinstallation schlägt fehl und kann nicht importiert werden, wenn keine .psm1, .psd1oder .dll desselben Namens innerhalb des Ordners vorhanden ist. Verwenden Sie den parameter Force, um das Modul zu installieren.

Wenn die Version eines vorhandenen Moduls mit dem namen übereinstimmt, der durch den Parameter Name angegeben wird, und die MinimumVersion oder RequiredVersion Parameter nicht verwendet werden, wird Install-Module im Hintergrund fortgesetzt, das Modul wird jedoch nicht installiert.

Wenn die Version eines vorhandenen Moduls größer als der Wert des MinimumVersion-Parameters oder gleich dem Wert des RequiredVersion-Parameters ist, wird Install-Module im Hintergrund fortgesetzt, das Modul wird jedoch nicht installiert.

Wenn das vorhandene Modul nicht mit den werten übereinstimmt, die durch die parameter MinimumVersion oder RequiredVersion angegeben werden, tritt im Befehl Install-Module ein Fehler auf. Wenn die Version des vorhandenen installierten Moduls z. B. niedriger als der wert MinimumVersion oder nicht gleich dem wert RequiredVersion ist.

Install-Module installiert auch alle abhängigen Module, die vom Modulherausgeber benötigt werden. Der Herausgeber listet die erforderlichen Module und deren Versionen im Modulmanifest auf.