New-Module
Yalnızca bellekte var olan yeni bir dinamik modül oluşturur.
Sözdizimi
ScriptBlock EnterprisePublishing
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
New-Module cmdlet'i bir betik bloğundan dinamik bir modül oluşturur. İşlevler ve değişkenler gibi dinamik modülün üyeleri oturumda hemen kullanılabilir ve siz oturumu kapatana kadar kullanılabilir durumda kalır.
Statik modüller gibi, varsayılan olarak dinamik modüldeki cmdlet'ler ve işlevler dışarı aktarılır ve değişkenler ve diğer adlar dışarı aktarılmaz. Ancak, varsayılanları geçersiz kılmak için Export-ModuleMember cmdlet'ini ve New-Module parametrelerini kullanabilirsiniz.
Dinamik modülü özel bir nesne olarak döndürmek için New-Module parametresini de kullanabilirsiniz. Modüllerin üyeleri, örneğin işlevler, oturuma içeri aktarılmak yerine özel bir nesnenin betik metodları olarak hayata geçirilir.
Dinamik modüller diskte değil yalnızca bellekte bulunur. Tüm modüllerde olduğu gibi dinamik modüllerin üyeleri de genel kapsamın alt öğesi olan özel bir modül kapsamında çalışır. Get-Module dinamik modül alamaz, ancak Get-Command dışarı aktarılan üyeleri alabilir.
Bir dinamik modülü Get-Moduleiçin kullanılabilir hale getirmek için bir New-Module komutunu Import-Module'e aktarın veya New-Module'nin döndürdüğü modül nesnesini Import-Module'e aktarın. Bu eylem, dinamik modülü Get-Module listesine ekler, ancak modülü diske kaydetmez veya kalıcı hale getirmez.
Örnekler
Örnek 1: Dinamik modül oluşturma
Bu örnek, Helloadlı bir işlevle yeni bir dinamik modül oluşturur. komutu, yeni dinamik modülü temsil eden bir modül nesnesi döndürür.
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 : {}
Örnek 2: Dinamik modüllerle çalışma, Get-Module ve Get-Command
Bu örnek, dinamik modüllerin Get-Module cmdlet'i tarafından döndürülmediğini gösterir. Dışarı aktardıkları üyeler Get-Command cmdlet'i tarafından döndürülür.
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!"
Örnek 3: Değişkeni geçerli oturuma aktarma
Bu örnekte, bir değişkeni geçerli oturuma aktarmak için Export-ModuleMember cmdlet'i kullanılır.
Export-ModuleMember komutu olmadan yalnızca işlev dışarı aktarılır.
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
Çıktı, hem değişkenin hem de işlevin oturuma aktarıldığını gösterir.
Örnek 4: Dinamik modülü Get-Module için kullanılabilir hale getirme
Bu örnek, dinamik modülü Get-Module'e yönlendirerek Import-Module için kullanılabilir hale getirebileceğinizi göstermektedir.
New-Module, Import-Module cmdlet'ine yöneltilen bir modül nesnesi oluşturur.
'nin New-Module parametresi modüle anlamlı bir ad atar.
Import-Module varsayılan olarak hiçbir nesne döndürmediğinden, bu komuttan çıkış yoktur. Geçerli oturuma Get-Module aktarıldığı .
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!"
Get-Command cmdlet'i, dinamik modülün dışa aktardığı Hello işlevini gösterir.
Örnek 5: Dışarı aktarılan işlevlere sahip özel bir nesne oluşturma
Bu örnekte, dışarı aktarılan işlevleri temsil eden betik yöntemlerine sahip özel bir nesne oluşturmak için New-Module parametresinin nasıl kullanılacağı gösterilmektedir.
New-Module cmdlet'i, Hello ve Goodbyeolmak üzere iki işleve sahip bir dinamik modül oluşturur.
AsCustomObject parametresi, varsayılan olarak oluşturduğu New-Module nesnesi yerine özel bir nesne oluşturur. Bu özel nesne $m değişkenine kaydedilir.
$m değişkeninin atanmış değeri yok gibi görünüyor.
$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
$m'ı Get-Member cmdlet'ine boru hattı ile iletmek, özel nesnenin özelliklerini ve yöntemlerini görüntüler. Çıktı, nesnenin Hello ve Goodbye işlevlerini temsil eden betik yöntemlerine sahip olduğunu gösterir.
Son olarak, bu betik yöntemlerini çağırır ve sonuçları görüntüleriz.
Örnek 6: Betik bloğunun sonuçlarını alma
Bu örnekte ReturnResult parametresi, bir modül nesnesi istemek yerine betik bloğunun çalıştırılmasının sonuçlarını istemek için kullanılır. Yeni modüldeki betik bloğu, SayHello işlevini tanımlar ve ardından işlevi çağırır.
New-Module -ScriptBlock {function SayHello {"Hello, World!"}; SayHello} -ReturnResult
Hello, World!
Parametreler
-ArgumentList
Betik bloğuna geçirilen parametre değerleri olan bir bağımsız değişken dizisini belirtir. ArgumentList'in davranışı hakkında daha fazla bilgi için about_Splattingbölümüne bakın.
Parametre özellikleri
| Tür: | Object[] |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | Argümanlar |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-AsCustomObject
Bu cmdlet'in dinamik modülü temsil eden özel bir nesne döndürdüğünü gösterir. Modül üyeleri özel nesnenin betik yöntemleri olarak uygulanır, ancak oturuma aktarılmaz. Özel nesneyi bir değişkene kaydedebilir ve üyeleri çağırmak için noktalı gösterimi kullanabilirsiniz.
Modülde aynı ada sahip bir işlev ve her ikisi de A adlı bir değişken gibi birden çok üye varsa, özel nesneden her ada sahip yalnızca bir üyeye erişilebilir.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Cmdlet
Bu cmdlet'in modülden geçerli oturuma aktarıldığı bir cmdlet dizisi belirtir. Virgülle ayrılmış bir cmdlet listesi girin. Joker karakterlere izin verilir. Varsayılan olarak, modüldeki tüm cmdlet'ler dışarı aktarılır.
Bir betik bloğunda cmdlet'leri tanımlayamazsınız, ancak bir dinamik modül, cmdlet'leri bir ikili modülden içeri aktarırsa cmdlet'leri içerebilir.
Parametre özellikleri
| Tür: | String[] |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Function
Bu cmdlet'in modülden geçerli oturuma aktardığı işlevler dizisini belirtir. Virgülle ayrılmış bir işlev listesi girin. Joker karakterlere izin verilir. Varsayılan olarak, bir modülde tanımlanan tüm işlevler dışarı aktarılır.
Parametre özellikleri
| Tür: | String[] |
| Default value: | None |
| Joker karakterleri destekler: | True |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Name
Yeni modül için bir ad belirtir. Modül adını New-Module'e de aktarabilirsiniz.
Varsayılan değer, __DynamicModule_ ile başlayan ve ardından dinamik modülün yolunu belirten bir GUID ile başlayan otomatik olarak oluşturulan bir addır.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
Name
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | True |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-ReturnResult
Bu cmdlet'in betik bloğunu çalıştırdığını ve bir modül nesnesi döndürmek yerine betik bloğu sonuçlarını döndürdüğünü gösterir.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-ScriptBlock
Dinamik modülün içeriğini belirtir. Betik bloğu oluşturmak için içeriği küme ayraçları ({}) içine alın. Bu parametre gereklidir.
Parametre özellikleri
| Tür: | ScriptBlock |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | 1 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
CommonParameters
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.
Girişler
String
Modül adını bu cmdlet'e aktarabilirsiniz.
Çıkışlar
PSModuleInfo
Bu cmdlet varsayılan olarak bir PSModuleInfo nesnesi oluşturur.
PSCustomObject
AsCustomObject parametresini kullanırsanız, bir PSCustomObject nesnesi oluşturur.
Object
ReturnResult parametresini kullanırsanız, bu cmdlet dinamik modüldeki betik bloğunu değerlendirmenin sonucunu döndürür.
Notlar
PowerShell, New-Moduleiçin aşağıdaki diğer adları içerir:
- Tüm platformlar:
nmo