New-Module - PowerShell Befehl Hilfe und Beispiele

Erstellt ein neues dynamisches Modul, das nur im Arbeitsspeicher vorhanden ist. (New-Module)


NAME
New-Module
ÜBERSICHT
Erstellt ein neues dynamisches Modul, das nur im Arbeitsspeicher vorhanden ist.
SYNTAX
New-Module [-Name] <string> [-ScriptBlock] <scriptblock> [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Function <string[]>] [-ReturnResult] [<CommonParameters>] New-Module [-ScriptBlock] <scriptblock> [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Function <string[]>] [-ReturnResult] [<CommonParameters>]
BESCHREIBUNG
Mit dem Cmdlet "New-Module" wird ein dynamisches Modul aus einem Skriptblock erstellt. Die Elemente des dynamischen Moduls, z. B. Funktionen und Variablen, sind in der Sitzung sofort verfügbar und bleiben verfügbar, bis Sie die Sitzung schließen. Genauso wie statische Module werden die Cmdlets und Funktionen in einem dynamischen Modul standardmäßig exportiert, die Variablen und Aliase jedoch nicht. Sie können jedoch das Cmdlet "Export-ModuleMember" und die Parameter von New-Module verwenden, um die Standardeinstellungen zu überschreiben. Dynamische Module sind nur im Arbeitsspeicher, nicht jedoch auf dem Datenträger vorhanden. Genauso wie alle Module werden die Elemente dynamischer Module in einem privaten Modulbereich ausgeführt, der ein untergeordnetes Element des globalen Bereichs ist. Get-Module kann kein dynamisches Modul abrufen, Get-Command ist jedoch in der Lage, die exportierten Elemente abzurufen. Übergeben Sie den Befehl "New-Module" über die Pipeline an Import-Module, oder übergeben Sie das Modulobjekt, das von New-Module zurückgegeben wird, über die Pipeline an Import-Module, um ein dynamisches Modul für Get-Module verfügbar zu machen. Dadurch wird das dynamische Modul der Liste "Get-Module" hinzugefügt, ohne jedoch auf dem Datenträger gespeichert oder dauerhaft verfügbar gemacht zu werden.
PARAMETER
-ArgumentList <Object[]> Gibt Argumente (Parameterwerte) an, die an den Skriptblock übergeben werden. Erforderlich? false Position? named Standardwert Keiner Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -AsCustomObject [<SwitchParameter>] Gibt ein benutzerdefiniertes Objekt mit Elementen zurück, die die Modulelemente darstellen. Wenn Sie den AsCustomObject-Parameter verwenden, wird das dynamische Modul von New-Module erstellt, die Modulelemente werden in die aktuelle Sitzung importiert, und ein PSCustomObject-Objekt wird anstelle eines PSModuleInfo-Objekts zurückgegeben. Sie können das benutzerdefinierte Objekt in einer Variablen speichern und die punktierte Notation verwenden, um die Elemente aufzurufen. Wenn das Modul über mehrere Elemente mit dem gleichen Namen verfügt, z. B. eine Funktion und eine Variable mit dem Namen "A", kann vom benutzerdefinierten Objekt jeweils nur auf ein Element dieses Namens zugegriffen werden. Erforderlich? false Position? named Standardwert Keiner Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -Cmdlet <string[]> Exportiert nur die angegebenen Cmdlets aus dem Modul in die aktuelle Sitzung. Geben Sie eine durch Trennzeichen getrennte Liste von Cmdlets ein. Platzhalterzeichen sind zulässig. Standardmäßig werden alle Cmdlets im Modul exportiert. Sie können in einem Skriptblock keine Cmdlets definieren, ein dynamisches Modul kann jedoch Cmdlets einschließen, wenn es die Cmdlets aus einem binären Modul importiert. Erforderlich? false Position? named Standardwert Keiner Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?true -Function <string[]> Exportiert nur die angegebenen Funktionen aus dem Modul in die aktuelle Sitzung. Geben Sie eine durch Trennzeichen getrennte Liste von Funktionen ein. Platzhalterzeichen sind zulässig. Standardmäßig werden alle in einem Modul definierten Funktionen exportiert. Erforderlich? false Position? named Standardwert Keiner Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?true -Name <string> Gibt einen Namen für das neue Modul an. Sie können Modulnamen auch über die Pipeline an New-Module übergeben. Der Standardwert ist ein automatisch generierter Name, der mit "__DynamicModule_" beginnt. Darauf folgt ein GUID, die den Pfad zum dynamischen Modul angibt. Erforderlich? true Position? 1 Standardwert "__DynamicModule_" + GUID Pipelineeingaben akzeptieren?true (ByValue) Platzhalterzeichen akzeptieren?false -ReturnResult [<SwitchParameter>] Führt den Skriptblock aus und gibt die Skriptblockergebnisse anstelle eines Modulobjekts zurück. Erforderlich? false Position? named Standardwert False Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -ScriptBlock <scriptblock> Gibt den Inhalt des dynamischen Moduls an. Schließen Sie den Inhalt in geschweifte Klammern ({}) ein, um einen Skriptblock zu erstellen. Dieser Parameter ist erforderlich. Erforderlich? true Position? 1 Standardwert Keiner Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false <CommonParameters> Dieses Cmdlet unterstützt folgende allgemeine Parameter: "Verbose", "Debug", "ErrorAction", "ErrorVariable", "WarningAction", "WarningVariable", "OutBuffer" und "OutVariable". Weitere Informationen erhalten Sie mit dem Befehl "get-help about_commonparameters".
EINGABEN
System.String Sie können eine Modulnamenszeichenfolge über die Pipeline an New-Module übergeben.
AUSGABEN
System.Management.Automation.PSModuleInfo, System.Management.Automation.PSCustomObject oder Keiner New-Module generiert standardmäßig ein PSModuleInfo-Objekt. Wenn Sie den AsCustomObject-Parameter verwenden, wird ein PSCustomObject-Objekt generiert. Wenn Sie den ReturnResult-Parameter verwenden, gibt er das Ergebnis der Auswertung des Skriptblocks im dynamischen Modul zurück.
HINWEISE
Sie können auch über den Alias "nmo" auf New-Module verweisen. Weitere Informationen finden Sie unter "about_Aliases".

Beispiele

BEISPIEL 1
C:\PS>new-module -scriptblock {function Hello {"Hello!"}} Name : __DynamicModule_2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5 Path : 2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5 Description : Guid : 00000000-0000-0000-0000-000000000000 Version : 0.0 ModuleBase : ModuleType : Script PrivateData : AccessMode : ReadWrite ExportedAliases : {} ExportedCmdlets : {} ExportedFunctions : {[Hello, Hello]} ExportedVariables : {} NestedModules : {} Beschreibung ----------- Dieser Befehl erstellt ein neues dynamisches Modul mit der Funktion "Hallo". Der Befehl gibt ein Modulobjekt zurück, das das neue dynamische Modul darstellt.
BEISPIEL 2
C:\PS>new-module -scriptblock {function Hello {"Hello!"}} Name : __DynamicModule_2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5 Path : 2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5 Description : Guid : 00000000-0000-0000-0000-000000000000 Version : 0.0 ModuleBase : ModuleType : Script PrivateData : AccessMode : ReadWrite ExportedAliases : {} ExportedCmdlets : {} ExportedFunctions : {[Hello, Hello]} ExportedVariables : {} NestedModules : {} C:\PS> get-module C:\PS> C:\PS> get-command Hello CommandType Name Definition ----------- ---- ---------- Function Hello "Hello!" Beschreibung ----------- In diesem Beispiel wird gezeigt, dass dynamische Module nicht vom Cmdlet "Get-Module" zurückgegeben werden. Stattdessen werden die von ihnen exportierten Elemente vom Cmdlet "Get-Command" zurückgegeben.
BEISPIEL 3
C:\PS>New-Module -scriptblock {$SayHelloHelp="Type 'SayHello', a space, and a name."; function SayHello ($name) { "Hello, $name" }; Export-ModuleMember -function SayHello -Variable SayHelloHelp} C:\PS> $SayHelloHelp Type 'SayHello', a space, and a name. C:\PS> SayHello Jeffrey Hello, Jeffrey Beschreibung ----------- In diesem Befehl wird eine Variable mit dem Cmdlet "Export-ModuleMember" in die aktuelle Sitzung exportiert. Ohne den Befehl "Export-ModuleMember" wird nur die Funktion exportiert. Die Ausgabe zeigt an, dass sowohl die Variable als auch die Funktion in die Sitzung exportiert wurden.
BEISPIEL 4
C:\PS>new-module -scriptblock {function Hello {"Hello!"}} -name GreetingModule | import-module C:\PS> get-module Name : GreetingModule Path : d54dfdac-4531-4db2-9dec-0b4b9c57a1e5 Description : Guid : 00000000-0000-0000-0000-000000000000 Version : 0.0 ModuleBase : ModuleType : Script PrivateData : AccessMode : ReadWrite ExportedAliases : {} ExportedCmdlets : {} ExportedFunctions : {[Hello, Hello]} ExportedVariables : {} NestedModules : {} C:\PS> get-command hello CommandType Name Definition ----------- ---- ---------- Function Hello "Hello!" Beschreibung ----------- Dieser Befehl zeigt, dass ein dynamisches Modul durch Übergeben des Moduls über die Pipeline an das Cmdlet "Import-Module" für das Cmdlet "Get-Module" verfügbar gemacht werden kann. Mit dem ersten Befehl wird das Modulobjekt, das von "New-Module" generiert wird, mit einem Pipelineoperator (|) an das Cmdlet "Import-Module" übergeben. Mit dem Name-Parameter von New-Module wird dem Modul im Befehl ein Anzeigename zugewiesen. Da von Import-Module standardmäßig keine Objekte zurückgegeben werden, wird von diesem Befehl keine Ausgabe generiert. Im zweiten Befehl werden die Module in der Sitzung mit dem Cmdlet "Get-Module" abgerufen. Das Ergebnis zeigt an, dass die neuen dynamischen Module mit Get-Module abgerufen werden können. Im dritten Befehl wird die Funktion "Hello", die vom dynamischen Modul exportiert wird, mit dem Cmdlet "Get-Command" abgerufen.
BEISPIEL 5
C:\PS>$m = new-module -scriptblock {function Hello ($name) {"Hello, $name"}; function Goodbye ($name) {"Goodbye, $name"}} -AsCustomObject C:\PS> $m C:\PS> $m | get-member TypeName: System.Management.Automation.PSCustomObject Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() Goodbye ScriptMethod System.Object Goodbye(); Hello ScriptMethod System.Object Hello(); PS C:\ps-test> $m.goodbye("Jane") Goodbye, Jane PS C:\ps-test> $m.hello("Manoj") Hello, Manoj PS C:\ps-test> goodbye Jane Goodbye, Jane PS C:\ps-test> hello Manoj Hello, Manoj Beschreibung ----------- In diesem Beispiel wird gezeigt, wie mit dem AsCustomObject-Parameter von New-Module ein benutzerdefiniertes Objekt mit Skriptmethoden generiert wird, die die exportierten Funktionen darstellen. Im ersten Befehl wird mit dem Cmdlet "New-Module" ein dynamisches Modul mit den Funktionen "Hello" und "Goodbye" generiert. Mit dem AsCustomObject-Parameter wird von dem Befehl ein benutzerdefiniertes Objekt anstelle des PSModuleInfo-Objekts generiert, das standardmäßig von New-Module generiert wird. Das benutzerdefinierte Objekt wird vom Befehl in der Variablen "$m" gespeichert. Im zweiten Befehl wird versucht, den Wert der Variablen "$m" anzuzeigen. Es wird kein Inhalt angezeigt. Im dritten Befehl wird das benutzerdefinierte Objekt mit einem Pipelineoperator (|) an das Cmdlet "Get-Member" gesendet, das die Eigenschaften und Methoden des benutzerdefinierten Objekts anzeigt. Die Ausgabe zeigt, dass das Objekt über zwei Skriptmethoden verfügt, die die Funktionen "Hello" und "Goodbye" darstellen. Im vierten und fünften Befehl werden mit dem Skriptmethodenformat die Funktionen "Hello" und "Goodbye" aufgerufen. Mit dem sechsten und siebten Befehl werden die Funktionen anhand des Funktionsnamens und des Parameterwerts aufgerufen.
BEISPIEL 6
C:\PS>new-module -scriptblock {function SayHello {"Hello, World!"}; SayHello} -returnResult Hello, World! Beschreibung ----------- Dieser Befehl verwendet den ReturnResult-Parameter, um die Ergebnisse der Skriptblockausführung anstelle eines Modulobjekts anzufordern. Durch den Skriptblock im neuen Modul wird die SayHello-Funktion definiert und dann die Funktion aufgerufen. VERWANDTE LINKS Online version: http://go.microsoft.com/fwlink/?LinkID=141554 (möglicherweise auf Englisch) Get-Module Import-Module Remove-Module Export-ModuleMember about_Modules C:\Windows>powershell get-help Import-Module -full

Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.

ColorConsole [Version 3.7.1000] PowerShell 2.0-Export

Windows 11, 10, 8.1, 8, 7 / Server 2022, 2019, 2016











Windows-10


... Windows 10 FAQ
... Windows 10 How To


Windows 10 How To


... Windows 11 How To
... Windows 10 FAQ



PowerShell: Erstellt ein neues dynamisches Modul, das nur im Arbeitsspeicher vorhanden ist.

HTTP: ... PS_Windows/de/New-Module.htm
0.078
16460
Verwenden der klassischen Bildschirmschoner auf Windows 11 und 10! New functions to show / hide the Windows 12, 11, 10, ... taskbar! Looking for a solution to find and delete old files on Windows 11? In der Explorer-Ansicht verborgene und Systemdateien anzeigen / ausblenden! Download Microsoft Internet Explorer 9! Papierkorb umbenennen unter Windows 11, 12, 10? Warum erscheint in der Windows 11 Taskleiste das Tastatur-Layout? Wird Windows 12 meine aktuelle Hardware unterstützen? Wie kann ich Dateien und Ordner aus der Dateizeit-Liste entfernen? Scannen nach Hardwareänderungen Windows 11?



(0)