Freigeben über


Import-Module

Fügt der aktuellen Sitzung Module hinzu.

Syntax

Import-Module [-Name] <string[]> [-Alias <string[]>] [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Function <string[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]>] [-Version <Version>] [<CommonParameters>]

Import-Module [-Assembly] <Assembly[]> [-Alias <string[]>] [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Function <string[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]>] [-Version <Version>] [<CommonParameters>]

Import-Module [-ModuleInfo] <PSModuleInfo[]> [-Alias <string[]>] [-ArgumentList <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Function <string[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]>] [-Version <Version>] [<CommonParameters>]

Beschreibung

Mit dem Cmdlet "Import-Module" wird der aktuellen Sitzung mindestens ein Modul hinzugefügt.

Module sind Pakete, die Elemente (z. B. Cmdlets, Anbieter, Skripts, Funktionen, Variablen sowie andere Tools und Dateien) zur Verwendung mit Windows PowerShell enthalten. Nachdem ein Modul importiert wurde, können Sie die Modulelemente in der Sitzung verwenden.

Wenn Sie ein Modul importieren möchten, können Sie dieses anhand der Parameter "Name", "Assembly" oder "ModuleInfo" bestimmen. Standardmäßig importiert Import-Module alle Elemente, die das Modul exportiert. Mit dem Parameter "Alias", "Function", "Cmdlet" und "Variable" können Sie die zu importierenden Elemente jedoch einschränken.

Mit Import-Module wird nur ein Modul in die aktuelle Sitzung importiert. Fügen Sie dem Windows PowerShell-Profil den Befehl "Import-Module" hinzu, um das Modul in alle Sitzungen zu importieren. Weitere Informationen über Profile finden Sie unter "about_Profiles".

Weitere Informationen zu Modulen finden Sie unter "about_Modules".

Parameter

-Alias <string[]>

Importiert nur die angegebenen Aliase aus dem Modul in die aktuelle Sitzung. Geben Sie eine durch Trennzeichen getrennte Liste von Aliasen ein. Platzhalterzeichen sind zulässig.

Einige Module exportieren ausgewählte Aliase automatisch in die Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie eine Auswahl aus den exportierten Aliasen treffen.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

true

-ArgumentList <Object[]>

Gibt Argumente (Parameterwerte) an, die während der Ausführung des Befehls "Import-Module" an ein Skriptmodul übergeben werden. Dieser Parameter ist nur beim Importieren eines Skriptmoduls gültig.

Sie können auch über den Alias "args" auf "ArgumentList" verweisen. Weitere Informationen finden Sie unter "about_Aliases".

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-AsCustomObject

Gibt ein benutzerdefiniertes Objekt mit Elementen zurück, die die importierten Modulelemente darstellen. Dieser Parameter ist nur für Skriptmodule gültig.

Wenn Sie den AsCustomObject-Parameter verwenden, werden die Modulelemente von Import-Module in die Sitzung importiert, und anschließend wird ein PSCustomObject-Objekt 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.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Assembly <Assembly[]>

Importiert die in den angegebenen Assemblyobjekten implementierten Cmdlets und Anbieter. Geben Sie eine Variable ein, die die Assemblyobjekte enthält, oder geben Sie einen Befehl ein, mit dem die Assemblyobjekte erstellt werden. Sie können auch ein Assemblyobjekt über die Pipeline an Import-Module übergeben.

Wenn Sie diesen Parameter verwenden, werden nur die Cmdlets und Anbieter importiert, die von den angegebenen Assemblys implementiert werden. Wenn das Modul andere Dateien enthält, werden diese nicht importiert, sodass wichtige Elemente des Moduls möglicherweise fehlen. Verwenden Sie diesen Parameter zum Debuggen und Testen des Moduls oder nach Anweisung eines anderen Modulautors.

Erforderlich?

true

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue)

Platzhalterzeichen akzeptieren?

false

-Cmdlet <string[]>

Importiert nur die angegebenen Cmdlets aus dem Modul in die aktuelle Sitzung. Geben Sie eine Liste der Cmdlets ein. Platzhalterzeichen sind zulässig.

Einige Module exportieren ausgewählte Cmdlets automatisch in die Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie eine Auswahl aus den exportierten Cmdlets treffen.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

true

-Force

Importiert ein Modul und seine Elemente erneut, auch wenn das Modul oder seine Elemente über schreibgeschützten Zugriff verfügen.

Erforderlich?

false

Position?

named

Standardwert

False

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Function <string[]>

Importiert nur die angegebenen Funktionen aus dem Modul in die aktuelle Sitzung. Geben Sie eine Liste von Funktionen ein. Platzhalterzeichen sind zulässig.

Einige Module exportieren ausgewählte Funktionen automatisch in die Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie eine Auswahl aus den exportierten Funktionen treffen.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

true

-Global

Bei Verwendung in einem Skriptmodul (".psm1") importiert dieser Parameter Module in den globalen Sitzungszustand.

Dieser Parameter ist nur wirksam, wenn er in einem Skriptmodul vorkommt. Andernfalls wird er ignoriert.

Standardmäßig werden die Befehle in einem Skriptmodul, einschließlich Befehlen aus geschachtelten Modulen, in den Sitzungszustand des Aufrufers importiert. Um einzuschränken, welche Befehle von einem Modul exportiert werden, verwenden Sie einen Export-ModuleMember-Befehl im Skriptmodul.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-ModuleInfo <PSModuleInfo[]>

Gibt zu importierende Modulobjekte an. Geben Sie eine Variable ein, die die Modulobjekte enthält, oder einen Befehl, mit dem die Modulobjekte abgerufen werden, beispielsweise den Befehl "Get-Module -listavailable". Sie können Modulobjekte auch über die Pipeline an Import-Module übergeben.

Erforderlich?

true

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue)

Platzhalterzeichen akzeptieren?

false

-Name <string[]>

Gibt die Namen der zu exportierenden Module an. Geben Sie den Namen des Moduls oder den Namen einer Datei im Modul ein, beispielsweise ".psd1", ".psm1", ".dll" oder die ps1-Datei. Dateipfade sind optional. Platzhalter sind nicht zulässig. Sie können Modulnamen und Dateinamen auch über die Pipeline an Import-Module übergeben.

Wenn kein Pfad angegeben wird, sucht Import-Module das Modul in den in der Umgebungsvariablen "PSModulePath" ("$env:PSModulePath") gespeicherten Pfaden.

Geben Sie nach Möglichkeit nur den Modulnamen an. Wenn Sie einen Dateinamen angeben, werden nur die Elemente importiert, die in dieser Datei implementiert wurden. Wenn das Modul andere Dateien enthält, werden diese nicht importiert, sodass wichtige Elemente des Moduls möglicherweise fehlen.

Erforderlich?

true

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue)

Platzhalterzeichen akzeptieren?

false

-PassThru

Gibt Objekte zurück, die die importierten Module darstellen. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.

Hinweise

– Wenn Sie die Ausgabe des Befehls "Get-Module -listavailable" mit dem PassThru-Parameter über die Pipeline an einen Import-Module-Befehl übergeben, wird von Import-Module das von Get-Module übergebene Objekt zurückgegeben, ohne das Objekt zu aktualisieren. Die Exported-Eigenschaft und die NestedModules-Eigenschaft werden daher noch nicht aufgefüllt.

– Wenn Sie mit dem Prefix-Parameter ein Präfix für das Element angeben, wird das Präfix nicht in den Elementnamen in den Eigenschaften des Modulobjekts angezeigt. Das Objekt zeichnet die exportierten Elemente vor Anwendung des Präfixes auf.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Prefix <string>

Fügt den Substantiven in den Namen importierter Modulelemente das angegebene Präfix hinzu.

Mit diesem Parameter können Sie potenzielle Namenskonflikte aufgrund unterschiedlicher Elemente mit identischem Namen in der Sitzung vermeiden. Der Parameter wirkt sich weder auf das Modul noch auf die Dateien aus, die vom Modul zur eigenen Verwendung importiert werden ("geschachtelte Module"). Er wirkt sich nur auf die Namen der Elemente in der aktuellen Sitzung aus.

Wenn Sie beispielsweise das Präfix "UTC" angeben und anschließend das Cmdlet "Get-Date" importieren, wird das Cmdlet in der Sitzung als Get-UTCDate bezeichnet, und es wird nicht mit dem ursprünglichen Cmdlet "Get-Date" verwechselt.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Variable <string[]>

Importiert nur die angegebenen Variablen aus dem Modul in die aktuelle Sitzung. Geben Sie eine Liste von Variablen ein. Platzhalterzeichen sind zulässig.

Einige Module exportieren ausgewählte Variablen automatisch in die Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie eine Auswahl aus den exportierten Variablen treffen.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

true

-Version <Version>

Gibt die Version des zu importierenden Moduls an. Verwenden Sie diesen Parameter, wenn Sie über verschiedene Versionen des gleichen Moduls auf dem System verfügen.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

System.String, System.Management.Automation.PSModuleInfo, System.Reflection.Assembly

Sie können einen Modulnamen, ein Modulobjekt oder ein Assemblyobjekt über die Pipeline an Import-Module übergeben.

Ausgaben

Keiner, System.Management.Automation.PSModuleInfo oder System.Management.Automation.PSCustomObject

Standardmäßig generiert Import-Module keine Ausgabe. Wenn Sie den PassThru-Parameter verwenden, wird ein System.Management.Automation.PSModuleInfo-Objekt generiert, das das Modul darstellt. Wenn Sie den AsCustomObject-Parameter verwenden, wird ein PSCustomObject-Objekt generiert.

Hinweise

Sie können auch über den Alias "ipmo" auf Import-Module verweisen. Weitere Informationen finden Sie unter "about_Aliases".

Bevor Sie ein Modul importieren können, muss das Modulverzeichnis in ein Verzeichnis kopiert werden, das für den lokalen Computer verfügbar ist. Weitere Informationen finden Sie unter "about_Modules".

Modulelemente werden in ihrem eigenen privaten Modulsitzungszustand ausgeführt, sodass sich die Befehle, die sie zur internen Verarbeitung verwenden, nicht auf Ihren Sitzungszustand auswirken.

Wenn Sie Elemente mit gleichem Namen und gleichem Typ in die Sitzung importieren, wird standardmäßig das zuletzt importierte Element von Windows PowerShell verwendet. Variablen und Aliase werden ersetzt, und die ursprünglichen Elemente sind nicht zugreifbar. Durch die neuen Elemente wird für die Funktionen, Cmdlets und Anbieter lediglich ein "Shadowing" durchgeführt. Der Zugriff erfolgt, indem der Befehlsname mit dem Namen des Snap-Ins, Moduls oder Funktionspfads qualifiziert wird.

Um die Formatierungsdaten für Befehle zu aktualisieren, die aus einem Modul importiert wurden, verwenden Sie das Cmdlet "Update-FormatData". Update-FormatData aktualisiert auch die Formatierungsdaten für Befehle in der Sitzung, die aus Modulen importiert wurden. Wenn sich die Formatierungsdatei für ein Modul ändert, können Sie einen Update-FormatData-Befehl ausführen, um die Formatierungsdaten für importierte Befehle zu aktualisieren. Das Modul muss nicht erneut importiert werden.

Beim Import eines mit Import-PSSession oder Export-PSSession erstellten Moduls darf die Ausführungsrichtlinie in der aktuellen Sitzung nicht "Restricted" oder "AllSigned" lauten, da die von Import-PSSession und Export-PSSession erstellten Module nicht signierte Skriptdateien enthalten, die von diesen Richtlinien verhindert werden. Um Import-Module zu verwenden, ohne die Ausführungsrichtlinie für den lokalen Computer zu ändern, verwenden Sie den Scope-Parameter von Set-ExecutionPolicy, um eine weniger restriktive Ausführungsrichtlinie für einen einzelnen Prozess festzulegen.

Beispiel 1

C:\PS>import-module -name BitsTransfer

Beschreibung
-----------
Mit diesem Befehl werden die Elemente des BitsTransfer-Moduls in die aktuelle Sitzung importiert.

Die Angabe des Name-Parameters (-Name) ist optional.

Standardmäßig wird von Import-Module beim Importieren eines Moduls keine Ausgabe generiert. Fordern Sie die Ausgabe mit dem PassThru-Parameter oder AsCustomObject-Parameter oder mit dem allgemeinen Verbose-Parameter an.





Beispiel 2

C:\PS>get-module -listAvailable | import-module

Beschreibung
-----------
Mit diesem Befehl werden alle verfügbaren Module in dem Pfad, der von der PSModulePath-Umgebungsvariablen ("$env:psmodulepath") angegebenen wird, in die aktuelle Sitzung importiert.





Beispiel 3

C:\PS>$m = get-module -ListAvailable BitsTransfer, ServerBackup

C:\PS> import-module -moduleInfo $m

Beschreibung
-----------
Mit diesen Befehlen werden die Elemente des BitsTransfer-Moduls und des ServerBackup-Moduls in die aktuelle Sitzung importiert. 

Im ersten Befehl werden mit dem Cmdlet "Get-Module" die PSModuleInfo-Objekte abgerufen, die das BitsTransfer-Modul und das ServerBackup-Modul darstellen. Die Objekte werden in der Variablen "$m" gespeichert. Beim Abrufen von Modulen, die noch nicht in die Sitzung importiert werden, ist der ListAvailable-Parameter erforderlich.

Im zweiten Befehl werden die Module mit dem ModuleInfo-Parameter von Import-Module in die aktuelle Sitzung importiert. 

Diese Befehle entsprechen der Verwendung eines Pipelineoperators (|) zum Senden der Ausgabe eines Get-Module-Befehls an Import-Module.





Beispiel 4

C:\PS>import-module -name c:\ps-test\modules\test -verbose

VERBOSE: Loading module from path 'C:\ps-test\modules\Test\Test.psm1'.
VERBOSE: Exporting function 'my-parm'.
VERBOSE: Exporting function 'get-parm'.
VERBOSE: Exporting function 'get-spec'.
VERBOSE: Exporting function 'get-specDetails'.

Beschreibung
-----------
Dieser Befehl verwendet einen expliziten Pfad, um das Modul zu identifizieren, das importiert werden soll. 

Außerdem wird mit dem allgemeinen Verbose-Parameter eine Liste der aus dem Modul importierten Elemente abgerufen. Ohne die Parameter "Verbose", "PassThru" oder "AsCustomObject" wird von Import-Module beim Importieren eines Moduls keine Ausgabe generiert.





Beispiel 5

C:\PS>import-module BitsTransfer -cmdlet Add-BitsTransferFile, Get-BitsTransfer

C:\PS> get-module BitsTransfer

Name              : BitsTransfer
Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BitsTransfer\BitsTransfer.psd1
Description       :
Guid              : 8fa5064b-8479-4c5c-86ea-0d311fe48875
Version           : 1.0.0.0
ModuleBase        : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BitsTransfer
ModuleType        : Manifest
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {[Add-BitsTransfer, Add-BitsTransfer], [Complete-BitsTransfer, Complete-BitsTransfer], [Get-BitsTransfer, Get-BitsTransfer], [Rem
                    ove-BitsTransfer, Remove-BitsTransfer]...}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules     : {Microsoft.BackgroundIntelligentTransfer.Management}


C:\PS> get-command -module BitsTransfer

CommandType Name                Definition
----------- ----                ----------
Cmdlet      Add-BitsTransfer    Add-BitsTransfer [-BitsJob] <BitsJob[]> [-Source] <String[]> [[-Destination] <String[]>] [-Verbose] [-Debug] [-ErrorA...
Cmdlet      Get-BitsTransfer    Get-BitsTransfer [[-Name] <String[]>] [-AllUsers] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-WarningActi...

Beschreibung
-----------
In diesem Beispiel wird verdeutlicht, wie die in die Sitzung importierten Modulelemente eingeschränkt werden und wie sich dieser Befehl auf die Sitzung auswirkt. 

Mit dem ersten Befehl werden nur die Cmdlets "Add-BitsTransfer" und "Get-BitsTransfer" aus dem BitsTransfer-Modul importiert. Der Befehl verwendet den Cmdlet-Parameter, um die vom Modul importierten Cmdlets einzuschränken. Sie können auch den Parameter "Alias", "Variable" und "Function" verwenden, um weitere von einem Modul importierte Elemente einzuschränken.

Der zweite Befehl verwendet das Cmdlet "Get-Module", um das Objekt abzurufen, das das BitsTransfer-Modul darstellt. Die ExportedCmdlets-Eigenschaft listet alle vom Modul exportierten Cmdlets auf, auch wenn sie nicht alle importiert wurden.

Der dritte Befehl ruft die Befehle, die aus dem BitsTransfer-Modul importiert wurden, mithilfe des Module-Parameters des Cmdlets "Get-Command" ab. Die Ergebnisse zeigen, dass nur die Cmdlets "Add-BitsTransfer" und "Get-BitsTransfer" importiert wurden.





Beispiel 6

C:\PS>import-module BitsTransfer -prefix PS -passthru

Name              : bitstransfer
Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\bitstransfer\bitstransfer.psd1
Description       :
Guid              : 8fa5064b-8479-4c5c-86ea-0d311fe48875
Version           : 1.0.0.0
ModuleBase        : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\bitstransfer
ModuleType        : Manifest
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {[Add-BitsTransfer, Add-BitsTransfer], [Remove-BitsTransfer, Remove-BitsTransfer], [Complete-BitsTransfer, Complete-BitsTransfer]
                    , [Get-BitsTransfer, Get-BitsTransfer]...}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules     : {Microsoft.BackgroundIntelligentTransfer.Management}


C:\PS> get-command -module bitstransfer

CommandType     Name                        Definition
-----------     ----                        ----------
Cmdlet          Add-PSBitsTransfer          Add-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Source] <String[]> ...
Cmdlet          Complete-PSBitsTransfer     Complete-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Verbose] [-Deb...
Cmdlet          Get-PSBitsTransfer          Get-PSBitsTransfer [[-Name] <String[]>] [-AllUsers] [-Verbose] ...
Cmdlet          Remove-PSBitsTransfer       Remove-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Verbose] [-Debug...
Cmdlet          Resume-PSBitsTransfer       Resume-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Asynchronous] [-...
Cmdlet          Set-PSBitsTransfer          Set-PSBitsTransfer [-BitsJob] <BitsJob[]> [-DisplayName <String...
Cmdlet          Start-PSBitsTransfer        Start-PSBitsTransfer [[-Source] <String[]>] [[-Destination] <St...
Cmdlet          Suspend-PSBitsTransfer      Suspend-PSBitsTransfer [-BitsJob] <BitsJob[]> [-Verbose] [-Debu...

Beschreibung
-----------
Mit diesen Befehlen wird das BitsTransfer-Modul in die aktuelle Sitzung importiert, den Elementnamen wird ein Präfix vorangestellt, und die Elementnamen mit Präfix werden angezeigt. 

Im ersten Befehl wird mit dem Cmdlet "Import-Module" das BitsTransfer-Modul importiert. Mit dem Prefix-Parameter wird das Präfix "PS" allen Elementen hinzugefügt, die aus dem Modul importiert werden, und mit dem PassThru-Parameter wird ein Modulobjekt zurückzugeben, das das importierte Modul darstellt.

Das Modulobjekt, das vom Befehl zurückgegeben wird, verfügt über eine ExportedCmdlets-Eigenschaft, mit der die exportierten Elemente aufgelistet werden. Das Präfix wird nicht in den Cmdlet-Namen angezeigt, da es nach dem Exportieren der Elemente, jedoch vor dem Importieren angewendet wird.

Im zweiten Befehl werden mit dem Cmdlet "Get-Command" die Elemente abgerufen, die aus dem Modul importiert wurden. Das Modul wird mit dem Module-Parameter angegeben. Die Ausgabe zeigt, dass die Modulelemente ordnungsgemäß mit einem Präfix versehen wurden.

Das verwendete Präfix gilt nur für die Elemente in der aktuellen Sitzung. Das Modul wird nicht geändert.





Beispiel 7

C:\PS>get-module -list | format-table -property name, moduletype -auto

Name          ModuleType
----          ----------
Show-Calendar     Script
BitsTransfer    Manifest
PSDiagnostics   Manifest
TestCmdlets       Script

C:\PS> $a = import-module -name Show-Calendar -asCustomObject

C:\PS> $a | 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()
Show-Calendar ScriptMethod System.Object Show-Calendar();

C:\PS> $a."show-calendar"()

Beschreibung
-----------
Diese Befehle veranschaulichen, wie das benutzerdefinierte Objekt, das von Import-Module zurückgegeben wird, abgerufen und verwendet wird. 

Benutzerdefinierte Objekte enthalten synthetische Elemente, die die einzelnen importierten Modulelemente darstellen. Beispielsweise werden die Cmdlets und Funktionen in einem Modul in Skriptmethoden des benutzerdefinierten Objekts konvertiert.

Benutzerdefinierte Objekte sind sehr hilfreich für die Skripterstellung. Sie sind außerdem hilfreich, wenn mehrere importierte Objekte den gleichen Namen haben. Die Verwendung der Skriptmethode eines Objekts entspricht dem Angeben des vollqualifizierten Namens eines importierten Elements einschließlich des Modulnamens.

Der AsCustomObject-Parameter kann nur mit einem Skriptmodul verwendet werden. Daher muss zunächst bestimmt werden, welches verfügbare Modul ein Skriptmodul darstellt.

Im ersten Befehl werden mit dem Cmdlet "Get-Module" die verfügbaren Module abgerufen. Im Befehl werden die Modulobjekte mit einem Pipelineoperator (|) an das Cmdlet "Format-Table" übergeben, das den Namen sowie den ModuleType der einzelnen Module in einer Tabelle auflistet.

Im zweiten Befehl wird mit dem Cmdlet "Import-Module" das Skriptmodul "Show-Calendar" importiert. Der Befehl fordert mit dem AsCustomObject-Parameter ein benutzerdefiniertes Objekt an. Mit dem Befehl wird das resultierende benutzerdefinierte Objekt in der Variablen "$a" gespeichert.

Im dritten Befehl wird die Variable "$a" mit einem Pipelineoperator an das Cmdlet "Get-Member" gesendet, und die Eigenschaften und Methoden von PSCustomObject in "$a" werden abgerufen. In der Ausgabe wird die Skriptmethode "Show-Calendar" angezeigt.

Im letzten Befehl wird die Skriptmethode "Show-Calendar" verwendet. Der Methodenname muss in Anführungszeichen eingeschlossen werden, da er einen Bindestrich enthält.





Beispiel 8

C:\PS>import-module BitsTransfer

C:\PS> import-module BitsTransfer -force -prefix PS

Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie der Force-Parameter von Import-Module verwendet wird, wenn Sie ein Modul erneut in die gleiche Sitzung importieren. 

Mit dem ersten Befehl wird das BitsTransfer-Modul importiert. Im zweiten Befehl wird das Modul erneut importiert, dieses Mal mit dem Prefix-Parameter. 

Der zweite Befehl schließt auch den Force-Parameter ein, der das Modul entfernt und es dann erneut importiert. Ohne Angabe dieses Parameters würde die Sitzung zwei Versionen des Cmdlets "BitsTransfer" enthalten, eine mit dem Standardnamen und eine mit dem Namen, dem ein Präfix vorangestellt ist.





Beispiel 9

C:\PS>get-date

Saturday, September 12, 2009 6:47:04 PM

C:\PS> import-module TestModule

C:\PS> get-date
09255

C:\PS> get-command get-date | format-table -property commandtype, name, pssnapin, module -auto

CommandType  Name       pssnapin                       Module
-----------  ----       --------                       ------
   Function  Get-Date                                  TestModule
     Cmdlet  Get-Date   Microsoft.PowerShell.Utility


C:\PS> Microsoft.PowerShell.Utility\get-date

Saturday, September 12, 2009 6:33:23 PM

Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie Befehle, die von importierten Befehlen ausgeblendet wurden, ausgeführt werden.

Der erste Befehl führt das Cmdlet "Get-Date" aus, das mit Windows PowerShell ausgeliefert wird. Er gibt ein DateTime-Objekt mit dem aktuellen Datum zurück.

Mit dem zweiten Befehl wird das Modul "TestModule" importiert. Dieses Modul schließt eine Funktion mit dem Namen Get-Date ein, die das julianische Datum zurückgibt. 

Mit dem dritten Befehl wird der Befehl "Get-Date" erneut ausgeführt. Da Funktionen Vorrang gegenüber Cmdlets haben, wurde anstelle des Cmdlets "Get-Date" die Get-Date-Funktion aus dem Modul "TestModule" ausgeführt.

Der vierte Befehl zeigt, dass zwei Get-Date-Befehle in der Sitzung vorhanden sind, eine Funktion aus dem Modul "TestModule" und ein Cmdlet aus dem Microsoft.PowerShell.Utility-Snap-In.

Der fünfte Befehl führt das ausgeblendete Cmdlet aus, indem er den Befehlsnamen mit dem Snap-In-Namen qualifiziert. 

Weitere Informationen zur Befehlsrangfolge in Windows PowerShell finden Sie unter "about_command_precedence".





Siehe auch

Konzepte

Get-Module
New-Module
Remove-Module
Export-ModuleMember
about_Modules