Get Eulanda Module Inventory
Zuletzt geändert: 24.08.2026 05:07

Übersicht

Get-EulandaModuleInventory #

ÜBERSICHT #

Inventur der installierten Eulanda-Module unter einer Modulwurzel.

SYNTAX #

Get-EulandaModuleInventory [-Root] <string> [[-Name] <string>] [-IncludeSignature]
    [<CommonParameters>]

BESCHREIBUNG #

Liest je Modulordner unter Root alle Versionsordner und das Manifest der jüngsten Version, ohne das Modul zu laden. Grundlage für den Selbst-Update der X-Suite: welche Module liegen wo, in welcher Version, was fordern sie, sind sie signiert, und ist etwas davon eine Entwickler-Verknüpfung, die nie angefasst werden darf.

Das Manifest wird mit Import-PowerShellDataFile gelesen, nicht mit Test-ModuleManifest: Letzteres löst RequiredModules auf und scheitert, wenn ein gefordertes Modul in dieser Sitzung nicht auffindbar ist. Für eine Inventur wäre das die falsche Antwort.

Zwei Ablageformen werden erkannt: der übliche Versionsordner (<Root>\<Modul>\<Version>\<Modul>.psd1) und die flache Ablage einer Entwickler-Verknüpfung (<Root>\<Modul>\<Modul>.psd1, Junction auf ein Quell-Repo). Bei der flachen Ablage kommt die Version aus dem Manifest.

Unterordner, deren Name keine Versionsnummer ist, aber ein Manifest enthalten (etwa 1.0.233 aus einem BOM-Unfall), werden als BrokenFolders ausgewiesen, nicht still übergangen: PowerShell ignoriert solche Ordner beim Import, und genau deshalb müssen sie sichtbar sein.

PARAMETER #

-Root #

Type: string

Modulwurzel, z.B. C:\Program Files\WindowsPowerShell\Modules.

-Name #

Type: string
Default: 'Eulanda*'

Namensfilter mit Platzhaltern. Vorgabe Eulanda*.

-IncludeSignature #

Type: switch

Prüft zusätzlich die Authenticode-Signatur von psd1 und psm1 der jüngsten Version. SignatureStatus ist Valid, wenn beide gültig signiert sind, sonst der erste abweichende Status (NotSigned, HashMismatch, …).

AUSGABEN #

object[]

Je Modul ein Objekt mit Name, Root, Path, LatestVersion, LatestPath, Versions (absteigend, als Text), BrokenFolders, IsLink, Tags, RequiredModules (Name/Version), SignatureStatus, Signer, Manifest.

BEISPIELE #

Get-EulandaModuleInventory -Root "$env:ProgramFiles\WindowsPowerShell\Modules"
Get-EulandaModuleInventory -Root (Get-UserPs5ModulePath) -Name 'EulandaX*' -IncludeSignature |
  Format-Table Name, LatestVersion, SignatureStatus, IsLink