Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
PowerShell Module nach PS Standards
#1
Hallo zusammen

Ich habe in der letzten Zeit begonnen, mit dem ASG PowerShell Modul zu arbeiten. Leider steht das Module nicht ganz analog den Standards bei PowerShell zur Verfügung:
  • Das Modul kann nicht mittels Import-Module geladen werden und besitzt kein Modul Manifest (.psd1)
  • Das Modul befindet sich nicht im offiziellen Modul Verzeichnis (seit PSv4: C:\Program Files\WindowsPowerShell\Modules) und unterstützt dadurch kein auto-loading
  • Das Modul ist nicht in der PowerShell Gallery verfügbar (https://www.powershellgallery.com/)
Wäre es möglich dies in einem der nächsten Releases zu ändern? Nur schon die ersten zwei Punkte wären toll.

Ich habe ein Beispiel-Modul angehängt, wie es aussehen könnte. Die DLL- und EXE-Dateien sind nur Platzhalter für die echten Dateien.

Freundliche Grüsse
Claudio Spizzi


Attached Files
.zip   ASGRD.zip (Size: 4.61 KB / Downloads: 4)
Reply
#2
Hallo zurück,

also

- das Modul kann sehr wohl mittels Import-Module geladen werden - die Befehle sind in der Hilfe dokumentiert - Modul-Manifest könnte man ergänzen, ich nehme es auf

- Darauf haben wir verzichtet, weil alle Programm-Dll's damit an 2 unterschiedlichen Orten gespeichert werden müssten

- Powershell-Gallery macht wenig Sinn, da es sich um eine Möglichkeit der direkten Anbindung einer Datenquelle von ASG-RD handelt und nicht um eine generelle Powershell-API die für jeden nutzbar wäre
Regards/Gruss
Oliver
Reply
#3
Hallo

Ja, dass ist genau das Problem. Der Befehl um das ASG Modul zu laden muss dokumentiert und nachgelesen werden, da folgendes, was sonst bei fast allen PS Modulen geht, hier nicht funktioniert:
PS C:\> Import-Module ASGRD

Auch hier taucht das ASG Modul nicht auf:
PS C:\> Get-Module -ListAvailable

Dies hat zwei Gründe:
  • Das Modul hat kein Manifest
  • Das Modul ist in keinem Verzeichnis der Umgebungsvariable PSModulePath zu finden

Ich verstehe, wenn Sie die Programm-DLL's nicht doppelt verteilen wollen. Dann gibt es zwei Alternativen:
  • Variante 1: Die Systemweite-Umgebungsvariable "PSModulePath" während der ASG Installation so anpassen, dass auch das ASG Installationsverzeichnis mit drin ist. Wenn dies richtig gesetzt ist, sollte das Module anschliessend automatisch gefunden und geladen werden können.
  • Variante 2: Im Manifest wird ein ps1 Script hinterlegt, welches manuell die DLLs aus dem ASG Installationsverzeichnis nachlädt. Dann kann das Modul ohne Probleme ins Standard Verzeichnis installiert werden.
Ich würde mich freuen, wenn Sie in einem künftigen Update das Manifest ergänzen und eine der zwei Varianten umsetzen könnten.

In der PowerShell Gallery sind sehr viele Module von Tools oder Services abhängig, da wären Sie in guter Gesellschaft (z.B. Azure, VMware)
Reply
#4
Ok, wir werden es uns anschauen und in einem Update berücksichtigen...
Regards/Gruss
Oliver
Reply




Users browsing this thread: 1 Guest(s)