Remove Eulanda Xtools Legacy Version
Zuletzt geändert: 12.11.2026 17:29

Übersicht

Remove-EulandaXtoolsLegacyVersion #

ÜBERSICHT #

Entfernt Versionsordner von EulandaXtools bis 1.0.3 aus den Modulpfaden des Benutzers.

SYNTAX #

Remove-EulandaXtoolsLegacyVersion [[-Root] <string[]>] [[-ReportOnlyRoot] <string[]>] [[-LogPath]
    <string>]

BESCHREIBUNG #

EulandaXtools hatte bis 1.0.3 eine eigene Funktion Expand-Archive ohne den Parameter -Path (ab 1.0.4 heißt sie Expand-Zip). Liegt so eine Fassung noch im Benutzer-Modulpfad, findet PowerShell sie vor dem Befehl aus Microsoft.PowerShell.Archive, und jedes Skript, das Expand-Archive -Path ohne Modulnamen aufruft, scheitert mit „Es wurde kein Parameter gefunden, der dem Parameternamen “Path” entspricht“ (XFacture #83). Die Funktion räumt diese Altstände weg.

Entfernt wird nur, was eindeutig alt ist:

  • ein Versionsordner unter EulandaXtools, dessen Name eine Version kleiner als 1.0.4 ist und dessen EulandaXtools.psd1 dieselbe ModuleVersion trägt;
  • nur in den Modulpfaden des Benutzers (Documents\WindowsPowerShell\Modules und Documents\PowerShell\Modules, auch wenn die Dokumente nach OneDrive umgeleitet sind).

Nur gemeldet, nie gelöscht, wird:

  • eine Fassung, die flach ohne Versionsordner im Modulordner liegt;
  • ein Ordner ohne Manifest, mit unlesbarer oder abweichender ModuleVersion;
  • eine Verknüpfung (Junction oder Symlink), etwa eines Entwicklers;
  • die gerade geladene Fassung;
  • eine alte Fassung unter Program Files (dort fehlen ohne Administratorrechte die Schreibrechte).

1.0.4 und alles darüber bleibt immer stehen, auch wenn es veraltet ist: Bei einem Kunden läuft ein altes EDI-Modul, das nur mit EulandaXtools 1.0.4 geht.

Die Funktion wirft nicht. Ein Ordner, der sich nicht löschen lässt (Datei gesperrt), steht mit Grund unter Failed.

PARAMETER #

-Root #

Type: string[]

Modulwurzeln, in denen aufgeräumt wird. Vorgabe: die beiden Benutzer-Modulpfade aus Get-UserPs5ModulePath und Get-UserPs7ModulePath.

-ReportOnlyRoot #

Type: string[]

Modulwurzeln, in denen alte Fassungen nur gemeldet werden. Vorgabe: die Modulordner unter Program Files und Program Files (x86).

-LogPath #

Type: string
Default: ''

Datei, an die das Protokoll angehängt wird (UTF-8). Leer = kein Protokoll, nur -Verbose.

AUSGABEN #

pscustomobject

Removed (entfernte Ordner), Reported (nur gemeldet, mit Grund), Failed (Löschen gescheitert, mit Grund).

BEISPIELE #

Remove-EulandaXtoolsLegacyVersion -WhatIf

Zeigt, welche Ordner entfernt würden.
$r = Remove-EulandaXtoolsLegacyVersion -LogPath "$env:TEMP\xtools-cleanup.log"
$r.Removed