Share via


Install-Module

Lädt mindestens ein Modul 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 Install-Module Cmdlet ruft ein oder mehrere Module ab, die die angegebenen Kriterien erfüllen, aus einem Onlinerepository. Das Cmdlet überprüft, ob die 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 installiert ist, basierend auf den minimalen, maximalen und genauen Versionen der angegebenen Module.

Dies ist ein Proxy-Cmdlet für das Get-InstalledPSResource Cmdlet 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

Der 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 in der Pipeline an das Install-Module Cmdlet gesendet. Install-Module installiert das Modul für alle Benutzer in $env:ProgramFiles\PowerShell\Modules.

Beispiel 2: Installieren eines Moduls nach Name

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

Install-Module -Name PowerShellGet

Der 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 MinimumVersion-Parameter gibt die niedrigste Version des Moduls an, die installiert werden soll. Wenn eine neuere Version des Moduls verfügbar ist, wird diese Version heruntergeladen und für alle Benutzer installiert.

Install-Module -Name PowerShellGet -MinimumVersion 2.0.1

Der Install-Module verwendet den Parameter Name , um das PowerShellGet-Modul anzugeben. Der MinimumVersion-Parameter 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 heruntergeladen und für alle Benutzer 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

Der 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 heruntergeladen und nur für den aktuellen Benutzer installiert.

Install-Module -Name PowerShellGet -Scope CurrentUser

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

Beispiel 6: Installieren der neuesten Vorabversion eines Moduls

In diesem Beispiel wird gezeigt, wie Sie die neueste Version eines Moduls installieren, wenn es sich bei dieser Version um eine Vorabversion handelt. Für die Installation einer Vorabversion ist der AllowPrerelease-Parameter 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 Find-Module Cmdlet kann verwendet werden, um Vorabversionen von Modulen im PowerShell-Katalog zu finden.

Vorabversionen haben das Format <version_number>-<prerelease_label>.

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, akzeptiert AcceptLicense die Lizenzvereinbarung automatisch während der Installation. Weitere Informationen finden Sie unter Module, für die die Lizenzakzeptanz erforderlich ist.

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

-AllowClobber

Überschreibt Warnmeldungen zu Installationskonflikten zu vorhandenen Befehlen auf einem Computer. Überschreibt vorhandene Befehle, die denselben Namen wie Befehle haben, 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 Install-PSResource Cmdlets.

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

-AllowPrerelease

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

Das Proxy-Cmdlet ordnet diesen Parameter dem Prerelease-Parameter von zu Install-PSResource.

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

-Confirm

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

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 Berechtigungen zum Installieren 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

-Force

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

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

-InputObject

Wird für die Pipelineeingabe verwendet. Ein Fehler wird ausgelöst, wenn ein Wert direkt an InputObject bereitgestellt wird. Verwenden Sie die Pipeline, um Objekte mit dem InputObject-Parameter zu übergeben.

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

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

-Name

Gibt die genauen Namen der Module 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 mit Modulnamen abzurufen.

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

-PassThru

Wenn Sie den PassThru-Parameter verwenden, Install-Module gibt ein PSRepositoryItemInfo-Objekt für das Modul aus. Dies sind dieselben Informationen, die Sie aus dem Find-Module Cmdlet erhalten.

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

-Proxy

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

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

-ProxyCredential

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

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

-Repository

Verwenden Sie den Repository-Parameter , um den Namen des Repositorys anzugeben, aus dem ein Modul heruntergeladen und installiert werden soll. Wird verwendet, wenn mehrere Repositorys registriert werden. Gibt den Namen eines registrierten Repositorys im Befehl an Install-Module . Verwenden Register-PSRepositorySie zum Registrieren eines Repositorys . Verwenden Get-PSRepositorySie zum Anzeigen registrierter Repositorys .

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

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

-Scope

Gibt den Bereich der Installation 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

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

$HOME\Documents\PowerShell\Modules

Wenn kein Bereich definiert ist, wird der Standardwert basierend auf der PowerShellGet-Version festgelegt.

  • In PowerShellGet 1.x-Versionen ist der Standardwert AllUsers, was für die Installation eine Erhöhung erfordert.
  • Für PowerShellGet-Versionen 2.0.0 und höher in PowerShell 6 oder höher:
    • Der Standardwert ist CurrentUser, was für die Installation keine Erhöhung erfordert.
    • Wenn Sie in einer Sitzung mit erhöhten Rechten ausgeführt werden, ist der Standardwert AllUsers.
Type:String
Accepted values:CurrentUser, AllUsers
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipPublisherCheck

Das Proxy-Cmdlet transformiert diesen Parameter in AthenticodeCheck , bevor aufgerufen wird Install-PSResource.

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

-WhatIf

Zeigt an, was passieren würde, wenn ein Install-Module Befehl ausgeführt 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

PSRepositoryItemInfo

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

String[]

PSObject[]

String

PSCredential

Uri

Ausgaben

Microsoft.PowerShell.Commands.PSRepositoryItemInfo

Wenn Sie den PassThru-Parameter verwenden, Install-Module gibt ein PSRepositoryItemInfo-Objekt für das Modul aus. Dies sind dieselben Informationen, die Sie aus dem Find-Module Cmdlet erhalten.

Hinweise

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

  • Alle Plattformen:
    • inmo

Install-Module wird unter PowerShell 5.0 oder höher, 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 TLS 1.2 oder höher nicht verwenden, wird beim Versuch, auf die PowerShell-Katalog zuzugreifen, eine Fehlermeldung angezeigt. 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.

Als bewährte Sicherheitsmethode 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 im Parameter Name angegebene Modulname im Repository nicht vorhanden ist, Install-Module wird ein Fehler zurückgegeben.

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 nicht MinimumVersion, MaximumVersion oder RequiredVersion verwenden. Find-Module erstellt PSRepositoryItemInfo-Objekte , die an die Pipeline 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 von AllUsers in $env:ProgramFiles\PowerShell\Modulesinstalliert. Die Standardeinstellung verhindert Verwirrung beim Installieren von PowerShell Desired State Configuration (DSC)-Ressourcen.

Eine Modulinstallation schlägt fehl und kann nicht importiert werden, wenn sie nicht über einen .psm1, .psd1oder .dll denselben Namen im Ordner verfügt. Verwenden Sie den Force-Parameter , um das Modul zu installieren.

Wenn die Version eines vorhandenen Moduls mit dem im Parameter Name angegebenen Namen übereinstimmt und der Parameter MinimumVersion oder RequiredVersion nicht verwendet werden, wird das Modul automatisch fortgesetzt, Install-Module aber 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 das Modul automatisch fortgesetzt, Install-Module aber nicht installiert.

Wenn das vorhandene Modul nicht mit den Werten übereinstimmt, die durch den Parameter MinimumVersion oder RequiredVersion angegeben werden, tritt im Install-Module Befehl ein Fehler auf. Beispielsweise, wenn die Version des vorhandenen installierten Moduls niedriger als der MinimumVersion-Wert 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.