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".

# 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

ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.

OS: Windows 10, 8.1, 8, 7, Vista / Windows Server 2016, 2012, 2008
»»»» ColorConsole





... Home  
... Impressum
... ColorConsole

... CMD
... Netsh-XP
... Netsh-7
... Netsh-Vista
... Powershell










Windows 10 download: Starter, Home (Basic Premium), Professional und Win 10 Ultimate!

... facebook.de
HTTP: ... PS_Windows/de/New-Module.htm
0.108

Download Visual Studio 2008 Professional Edition, 90-Tage-Testversion!

 /

Help: "Connection error" in Vista when the folder is locked!

 /

Why DesktopOK save the wrong resolution of the Desktop?

 /

USB 3.0 auf alten Notebooks und Laptops, geht das bei Windows ?

 /