34 Stimmen

Wann ist die Entwicklung eines PowerShell-Moduls einem PowerShell-Skript vorzuziehen?

Ich bin dabei, ein PowerShell-Skript für Windows-Administratoren zu schreiben, um sie bei bestimmten Aufgaben im Zusammenhang mit der Bereitstellung einer Webanwendung zu unterstützen.

Gibt es irgendeinen Grund, warum ich die Entwicklung eines solchen Systems bevorzugen oder ausschließen sollte? PowerShell-Modul (.psm1) anstelle der Durchführung einer PowerShell-Skript (.ps1) ?

Argumente für die Entwicklung eines Skripts

  • Einfachheit : Ich denke, dass die Verwendung eines Skripts für Windows-Administratoren etwas einfacher und unkomplizierter ist, da das Modul nicht installiert werden muss (ich kann mich aber auch irren, da ich kein Windows-Administrator bin).
  • schnellere Entwicklung Entwicklung eines Moduls: Die Entwicklung eines Moduls erfordert eine sorgfältigere Programmierung und die Kenntnis der internen Methoden. Es ist wie der Entwurf einer API und muss daher strenger sein.

Argumente für die Entwicklung eines Moduls :

  • Wiederverwendbarkeit Wenn der Administrator unser Skript in sein eigenes Skript integrieren möchte, könnte es für ihn einfacher sein, ein Modul mit einem (oder mehreren) Cmdlet wiederzuverwenden, anstatt unser Skript aufzurufen?
  • ...

Wenn Sie den allgemeinen Anwendungsfall von PS-Skripten im Vergleich zu PS-Modulen oder die technischen Grenzen der jeweiligen Wahl kennen, könnte dies hilfreich sein.

27voto

ravikanth Punkte 23794

Um zu verstehen, was Module für Sie tun können, lesen Sie dies: https://docs.microsoft.com/en-us/powershell/scripting/developer/module/writing-a-Windows-powershell-module?view=powershell-7.1

Kurz und bündig,

Mit Windows PowerShell-Modulen können Sie Ihren Windows PowerShell-Code in in sich geschlossene, wiederverwendbare Einheiten partitionieren, organisieren und abstrahieren. Mit diesen wiederverwendbaren Einheiten können Administratoren, Skriptentwickler und Cmdlet-Entwickler ihre Module einfach und direkt mit anderen teilen. Skriptentwickler können auch Module von Drittanbietern neu verpacken, um benutzerdefinierte skriptbasierte Anwendungen zu erstellen. Module, ähnlich wie Module in anderen Skriptsprachen wie Perl und Python, ermöglichen produktionsreife Skriptlösungen, die wiederverwendbare, weiterverteilbare Komponenten verwenden, mit dem zusätzlichen Vorteil, dass Sie mehrere Komponenten neu verpacken und abstrahieren können, um benutzerdefinierte Lösungen zu erstellen.

Wenn Ihr Skript bereits Funktionen enthält und nicht nur für eine einzige Aufgabe geschrieben wurde, können Sie es einfach in .PSM1 umbenennen, um es in ein Modul umzuwandeln. Wenn Sie keine Funktionen verwenden, bleibt Ihnen natürlich nichts anderes übrig, als .ps1 zu wählen. In diesem Fall wird jede .ps1-Datei zur Ausführung einer einzigen Aufgabe verwendet. Ich bevorzuge immer Module, wenn ich die Skripte, die ich schreibe, mit anderen teile.

18voto

Mike Shepard Punkte 16627

Ich mag Module, weil sie die Möglichkeit bieten, Funktionen/Variablen auszublenden und nur diejenigen zu exportieren, die ich benötige.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X