Install-EulandaModuleRelease #
ÜBERSICHT #
Installiert ein veröffentlichtes Modulpaket additiv in eine Modulwurzel.
SYNTAX #
Install-EulandaModuleRelease [-Name] <string> [-Root] <string> [[-Version] <string>] [[-BaseUrl]
<string>] [[-ZipPath] <string>] [-RequireSignature] [-Force] [[-TimeoutSec] <int>] [[-Headers]
<hashtable>] [<CommonParameters>]
BESCHREIBUNG #
Holt <Modulname>.zip von files.eulanda.eu (oder nimmt ein lokales ZIP), prüft das Paket und legt es als neuen Versionsordner <Root>\<Modul>\<Version> ab. Vorhandene Versionsordner bleiben unberührt: ein laufender Server hält seine Fassung im Speicher, und die neue wird erst beim nächsten Start geladen. Aufräumen ist Sache von Remove-EulandaModuleVersion, nach dem Neustart, nicht davor.
Geprüft wird, bevor etwas in die Wurzel geschrieben wird:
- Das Paket trägt
<Modul>.psd1an der ZIP-Wurzel (Konvention der Builder; ein ZIP mit Unterordner ist ein Fehler, kein Sonderfall). - Die
ModuleVersionim Manifest entspricht-Version, wenn angegeben. - Die Authenticode-Signatur von psd1 und psm1. Mit
-RequireSignaturewird ein unsigniertes oder ungültig signiertes Paket abgelehnt; ohne den Schalter wird der Status nur gemeldet. - Der Modulordner ist keine Entwickler-Verknüpfung (Junction auf ein Quell-Repo). Dort wird nie installiert.
Anders als Install-ModuleFromZip wird die Wurzel ausdrücklich übergeben: der Selbst-Update installiert dorthin, wo das laufende Modul herkommt (Program Files auf einem Server, Benutzerpfad auf einem Arbeitsplatz), nicht in einen festen Benutzerpfad.
Die Funktion wirft nicht. Jedes Ergebnis, auch ein Fehlschlag, kommt als Objekt mit Installed und Error zurück, damit ein Lauf über viele Module je Modul bilanzieren kann.
PARAMETER #
-Name #
Type: string
Modulname in der Schreibweise des Manifests.
-Root #
Type: string
Modulwurzel, in die installiert wird.
-Version #
Type: string
Default: ''
Erwartete Version. Weicht das Paket ab, wird nicht installiert. Leer = nehmen, was das Paket trägt.
-BaseUrl #
Type: string
Default: 'https://files.eulanda.eu'
Wurzel der Auslieferung. Vorgabe https://files.eulanda.eu.
-ZipPath #
Type: string
Default: ''
Lokales Paket statt Download (Tests, Offline-Einspielung, Rücknahme aus einer Sicherung).
-RequireSignature #
Type: switch
Unsignierte oder ungültig signierte Pakete ablehnen.
-Force #
Type: switch
Einen bereits vorhandenen gleichnamigen Versionsordner ersetzen. Ohne den Schalter gilt eine vorhandene Version als installiert.
-TimeoutSec #
Type: int
Default: 300
Zeitlimit für den Download in Sekunden. Vorgabe 300.
-Headers #
Type: hashtable
Zusätzliche HTTP-Kopfzeilen für den Download.
AUSGABEN #
pscustomobject
Name, Version, Path, Installed, Replaced, SignatureStatus, Signer, Error.
BEISPIELE #
Install-EulandaModuleRelease -Name EulandaXrest -Version 0.5.55 -Root "$env:ProgramFiles\WindowsPowerShell\Modules"
Install-EulandaModuleRelease -Name EulandaXclient -Root (Get-UserPs5ModulePath) -ZipPath C:\Temp\EulandaXclient.zip -RequireSignature