New-Module
Létrehoz egy új dinamikus modult, amely csak a memóriában létezik.
Syntax
ScriptBlock (Alapértelmezett)
New-Module
[-ScriptBlock] <ScriptBlock>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-ReturnResult]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[<CommonParameters>]
Name
New-Module
[-Name] <String>
[-ScriptBlock] <ScriptBlock>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-ReturnResult]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[<CommonParameters>]
Description
A New-Module parancsmag egy dinamikus modult hoz létre egy szkriptblokkból. A dinamikus modul tagjai, például a függvények és a változók, azonnal elérhetők a munkamenetben, és a munkamenet bezárásáig elérhetők maradnak.
A statikus modulokhoz hasonlóan alapértelmezés szerint a dinamikus modul parancsmagjait és függvényeit exportálja a rendszer, és a változók és aliasok nem. Az alapértelmezett értékek felülbírálásához azonban használhatja a Export-ModuleMember parancsmagot és a New-Module paramétereit.
A New-Module paraméterével is visszaadhatja a dinamikus modult egyéni objektumként. A modulok tagjai, például a függvények, az egyéni objektum szkriptmetódusaiként vannak implementálva, ahelyett, hogy importálva lettek a munkamenetbe.
A dinamikus modulok csak a memóriában léteznek, lemezen nem. Mint minden modul, a dinamikus modulok tagjai is egy privát modul hatókörében futnak, amely a globális hatókör gyermekeleme. Get-Module nem lehet dinamikus modult lekérni, de Get-Command lekérheti az exportált tagokat.
Ha elérhetővé szeretne tenni egy dinamikus modult a(z) Get-Moduleszámára, vezessen le egy New-Module parancsot az Import-Module parancson keresztül, vagy csövezze át a(z) New-Module által visszatérő modulobjektumot a(z) Import-Moduleszámára. Ez a művelet hozzáadja a dinamikus modult a Get-Module listához, de nem menti a modult a lemezre, és nem teszi állandóvá.
Példák
1. példa: Dinamikus modul létrehozása
Ez a példa létrehoz egy új dinamikus modult egy Hellonevű függvénnyel. A parancs egy modulobjektumot ad vissza, amely az új dinamikus modult jelöli.
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 : {}
2. példa: Dinamikus modulok, Get-Module és Get-Command használata
Ez a példa azt mutatja be, hogy a dinamikus modulokat nem a Get-Module parancsmag adja vissza. Az exportált tagokat a Get-Command parancsmag adja vissza.
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 : {}
Get-Module
Get-Command Hello
CommandType Name Definition
----------- ---- ----------
Function Hello "Hello!"
3. példa: Változó exportálása az aktuális munkamenetbe
Ez a példa a Export-ModuleMember parancsmaggal exportál egy változót az aktuális munkamenetbe.
A Export-ModuleMember parancs nélkül csak a függvény lesz exportálva.
New-Module -ScriptBlock {$SayHelloHelp="Type 'SayHello', a space, and a name."; function SayHello ($Name) { "Hello, $Name" }; Export-ModuleMember -Function SayHello -Variable SayHelloHelp}
$SayHelloHelp
Type 'SayHello', a space, and a name.
SayHello Jeffrey
Hello, Jeffrey
A kimenet azt mutatja, hogy a változó és a függvény is exportálva lett a munkamenetbe.
4. példa: Dinamikus modul elérhetővé tétele Get-Module
Ez a példa bemutatja, hogy a dinamikus modult elérhetővé teheti Get-Module számára úgy, hogy Import-Module-hez továbbítja.
New-Module létrehoz egy modulobjektumot, amely a Import-Module parancsmaghoz van csövezve. A New-Module paramétere egy barátságos nevet rendel a modulhoz. Mivel Import-Module alapértelmezés szerint nem ad vissza objektumokat, ebből a parancsból nincs kimenet.
Get-Module, hogy a GreetingModule importálva lett az aktuális munkamenetbe.
New-Module -ScriptBlock {function Hello {"Hello!"}} -Name GreetingModule | Import-Module
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 : {}
Get-Command Hello
CommandType Name Definition
----------- ---- ----------
Function Hello "Hello!"
A Get-Command parancsmag a dinamikus modul által exportált Hello függvényt jeleníti meg.
5. példa: Exportált függvényeket tartalmazó egyéni objektum létrehozása
Ez a példa bemutatja, hogyan használható a New-Module paramétere az exportált függvényeket képviselő szkriptmetódusokkal rendelkező egyéni objektum létrehozásához.
A New-Module parancsmag egy dinamikus modult hoz létre két funkcióval, Hello és Goodbye. Az AsCustomObject paraméter létrehoz egy egyéni objektumot a PSModuleInfo objektum helyett, amelyet alapértelmezés szerint New-Module generál. Ez az egyéni objektum a $m változóba lesz mentve.
Úgy tűnik, hogy a $m változóhoz nincs hozzárendelt érték.
$m = New-Module -ScriptBlock {
function Hello ($Name) {"Hello, $Name"}
function Goodbye ($Name) {"Goodbye, $Name"}
} -AsCustomObject
$m
$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();
$m.Goodbye("Jane")
Goodbye, Jane
$m.Hello("Manoj")
Hello, Manoj
A $m parancsmaghoz való piping Get-Member az egyéni objektum tulajdonságait és metódusait jeleníti meg. A kimenet azt mutatja, hogy az objektum szkriptmetódusokkal rendelkezik, amelyek a Hello és Goodbye függvényeket jelölik.
Végül meghívjuk ezeket a szkriptfüggvényeket, és megjelenítjük az eredményeket.
6. példa: A szkriptblokk eredményeinek lekérése
Ez a példa a ReturnResult paraméterrel kéri le a szkriptblokk futtatásának eredményeit modulobjektum kérése helyett. Az új modul szkriptblokkja határozza meg a SayHello függvényt, majd meghívja a függvényt.
New-Module -ScriptBlock {function SayHello {"Hello, World!"}; SayHello} -ReturnResult
Hello, World!
Paraméterek
-ArgumentList
Olyan argumentumtömböt ad meg, amely paraméterértékeket ad át a szkriptblokknak. Az ArgumentListviselkedésével kapcsolatos további információkért lásd: about_Splatting.
Paramétertulajdonságok
| Típus: | Object[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | Argumentumok |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-AsCustomObject
Azt jelzi, hogy ez a parancsmag egy egyéni objektumot ad vissza, amely a dinamikus modult jelöli. A modultagok az egyéni objektum szkriptmetódusaiként vannak implementálva, de nem importálhatók a munkamenetbe. Az egyéni objektumot mentheti egy változóban, és pont jelöléssel meghívhatja a tagokat.
Ha a modul több azonos nevű taggal rendelkezik, például egy függvénysel és egy A nevű változóval, az egyéni objektumból csak egy tag érhető el mindegyik névvel.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Cmdlet
A parancsmagok tömbjének megadása, amelyeket ez a parancsmag exportál a modulból az aktuális munkamenetbe. Adja meg a parancsmagok vesszővel tagolt listáját. A helyettesítő karakterek használata engedélyezett. Alapértelmezés szerint a modul összes parancsmagja exportálva lesz.
Parancsmagokat nem definiálhat szkriptblokkokban, de egy dinamikus modul tartalmazhat parancsmagokat, ha bináris modulból importálja a parancsmagokat.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Function
Olyan függvénytömböt ad meg, amelyet ez a parancsmag exportál a modulból az aktuális munkamenetbe. Adja meg a függvények vesszővel tagolt listáját. A helyettesítő karakterek használata engedélyezett. Alapértelmezés szerint a modulban definiált összes függvény exportálva lesz.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | True |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Name
Megadja az új modul nevét. A modul nevét a New-Modulere is be lehet csövezni.
Az alapértelmezett érték egy automatikusan létrehozott név, amely __DynamicModule_ kezdődik, és egy GUID követi, amely meghatározza a dinamikus modul elérési útját.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
Name
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-ReturnResult
Azt jelzi, hogy ez a parancsmag futtatja a szkriptblokkot, és a modulobjektumok visszaadása helyett a szkriptblokk eredményeit adja vissza.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-ScriptBlock
Meghatározza a dinamikus modul tartalmát. A szkriptblokk létrehozásához csatolja a tartalmat a kapcsos zárójelekbe ({}). Ez a paraméter kötelező.
Paramétertulajdonságok
| Típus: | ScriptBlock |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | 1 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.
Bevitelek
String
Ehhez a parancsmaghoz csövezheti a modul nevét.
Kimenetek
PSModuleInfo
Ez a parancsmag alapértelmezés szerint létrehoz egy PSModuleInfo objektumot.
PSCustomObject
Ha az AsCustomObject paramétert használja, az létrehoz egy PSCustomObject objektumot.
Object
Ha a ReturnResult paramétert használja, ez a parancsmag a dinamikus modul szkriptblokkjának kiértékelésének eredményét adja vissza.
Jegyzetek
A PowerShell a következő aliasokat tartalmazza New-Module:
- Minden platform:
nmo