Aracılığıyla paylaş


about_Module_Manifests

Kısa açıklama

Modül bildirim dosyalarını yazmak için ayarları ve uygulamaları açıklar.

Uzun açıklama

Modül bildirimi, karma tablo içeren bir PowerShell veri dosyasıdır (.psd1). Karma tablodaki anahtar-değer çiftleri modülün içeriğini ve özniteliklerini açıklar, önkoşulları tanımlar ve bileşenlerin nasıl işlendiğini denetler.

Bir modülü yüklemek için bildirimler gerekli değildir, ancak modülü'ne yayımlamaları PowerShell Gallerygerekir. Bildirimler ayrıca modülünüzün uygulamasını yükleme yönteminden ayırmanıza da olanak tanır. Bir bildirimle gereksinimleri, uyumluluğu, yükleme sırasını ve daha fazlasını tanımlayabilirsiniz.

Bildirimin ayarları için herhangi bir parametre belirtmeden New-ModuleManifest kullandığınızda, en az bildirim dosyası yazar. Aşağıdaki kod parçacığı, kısa bir açıklama ve aralık alıntısı olan bu varsayılan çıkışı gösterir:

@{
# RootModule = ''
ModuleVersion = '1.0'
# CompatiblePSEditions = @()
GUID = 'e7184b71-2527-469f-a50e-166b612dfb3b'
Author = 'username'
CompanyName = 'Unknown'
Copyright = '(c) 2022 username. All rights reserved.'
# Description = ''
# PowerShellVersion = ''
# PowerShellHostName = ''
# PowerShellHostVersion = ''
# DotNetFrameworkVersion = ''
# CLRVersion = ''
# ProcessorArchitecture = ''
# RequiredModules = @()
# RequiredAssemblies = @()
# ScriptsToProcess = @()
# TypesToProcess = @()
# FormatsToProcess = @()
# NestedModules = @()
FunctionsToExport = @()
CmdletsToExport = @()
VariablesToExport = '*'
AliasesToExport = @()
# DscResourcesToExport = @()
# ModuleList = @()
# FileList = @()
PrivateData = @{
    PSData = @{
        # Tags = @()
        # LicenseUri = ''
        # ProjectUri = ''
        # IconUri = ''
        # ReleaseNotes = ''
        # ExternalModuleDependencies = @()
    } # End of PSData hashtable
} # End of PrivateData hashtable
# HelpInfoURI = ''
# DefaultCommandPrefix = ''
}

Modülünüzü yayımlamadan önce bir modül bildirimini doğrulamak için Test-ModuleManifest kullanabilirsiniz. Test-ModuleManifest, bildirim geçersizse veya oturum bildirimde ayarlanan gereksinimleri karşılamadığından modül geçerli oturuma aktarılamıyorsa bir hata döndürür.

Modül bildiriminde betik kodu kullanma

Bildirim dosyasındaki ayarlara atanan değerler, PowerShell tarafından değerlendirilen ifadeler olabilir. Bu, yolları oluşturmanıza ve değişkenlere göre koşullu olarak değerler atamanıza olanak tanır.

Import-Modulekullanarak bir modülü içeri aktardığınızda, bildirim Restricted dil modunda değerlendirilir. Restricted modu, kullanılabilecek komutları ve değişkenleri sınırlar.

İzin verilen komutlar

  • Import-LocalizedData
  • ConvertFrom-StringData
  • Write-Host
  • Out-Host
  • Join-Path

İzin verilen değişkenler

  • $PSScriptRoot
  • $PSEdition
  • $EnabledExperimentalFeatures
  • $Env:TEMP gibi ortam değişkenleri

Daha fazla bilgi için bkz. about_Language_Modes.

Bildirim ayarları

Aşağıdaki bölümlerde bir modül bildirimindeki kullanılabilir tüm ayarlar ve bunları nasıl kullanabileceğiniz açıklanmıştır. Bunlar ayarın bir özetiyle başlar ve ardından aşağıdakileri listeleyen bir matris izler:

  • Giriş türü: Bildirimde bu ayar için belirtebileceğiniz nesne türü.
  • Gerekli: Bu değer "Evet" ise, ayarın hem modülü içeri aktarmak hem de 'de yayımlamak için PowerShell Gallerygereklidir. "Hayır" ise, ikisi için de gerekli değildir. ise PowerShell Gallery, yalnızca 'de yayımlamak PowerShell Galleryiçin gereklidir.
  • ayarlanmamışsa Değer: Bu ayarın içeri aktarıldığında sahip olduğu ve açıkça ayarlanmadığı değerdir.
  • Joker karakterlerikabul eder: Bu ayarın joker karakter değeri alıp alamayacağı.

RootModule

Bu ayar modülün birincil veya kök dosyasını belirtir. Modül içeri aktarıldığında, kök modül dosyası tarafından dışarı aktarılan üyeler çağıranın oturum durumuna aktarılır.

Değer
Giriş Türü System.String
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Değer aşağıdakilerden birinin yolu olmalıdır:

  • betik (.ps1)
  • bir betik modülü (.psm1)
  • modül bildirimi (.psd1)
  • bir derleme (.dll)
  • cmdlet tanım XML dosyası (.cdxml)
  • a Windows PowerShell 5.1 Workflow (.xaml)

Yol, modül bildirimine göre olmalıdır.

Bir modül bildiriminde RootModule anahtarında belirlenmiş bir kök dosyası yoksa, bildirim modülün birincil dosyası olur ve modül bir bildirim modülüne (ModuleType = Bildirim) dönüşür. RootModule tanımlandığında modülün türü kullanılan dosya uzantısından belirlenir:

  • .ps1 veya .psm1 dosyası, modül türünü Betik yapar
  • .psd1 dosyası, modül türünü Bildirim yapar
  • .dll dosyası, modül türünü İkili yapar
  • .cdxml dosyası, modül türünü CIM yapar
  • .xaml dosyası, modül türünü İş Akışı yapar

Varsayılan olarak, RootModule tüm modül üyeleri dışarı aktarılır.

Bahşiş

Modül yükleme hızı, İkili, Betikve CIM modül türleri arasında farklılık gösterir. Daha fazla bilgi için bkz. PowerShell modülü yazma konuları

Örneğin, bu modülün ModuleTypeBildirim. Bu modülün dışarı aktarabileceği tek modül üyeleri, NestedModules ayarıyla belirtilen modüllerde tanımlananlardır.

@{
    RootModule = ''
}

Not

Bu ayar modül bildirimlerinde moduleToProcess olarak da belirtilebilir. Bu ayarın adı geçerli olsa da, bunun yerine rootmodule kullanmak en iyi yöntemdir.

ModuleVersion

Bu ayar modülün sürümünü belirtir. Sistemde bir modülün birden çok sürümü varsa, Import-Moduleçalıştırdığınızda varsayılan olarak en son sürüm yüklenir.

Değer
Giriş Türü System.String
Gerekli Evet
Değeri Hiç kimse
Joker karakter kabul eder Hayır

System.Versionçalıştırdığınızda bu ayarın değeri Import-Module dönüştürülebilir olmalıdır.

Örneğin, bu bildirim modülün sürümünü '1.2.3'olarak bildirir.

@{
    ModuleVersion = '1.2.3'
}

Modülü içeri aktarıp Sürüm özelliğini incelediğinizde, bunun dize değil bir System.Version nesnesi olduğunu unutmayın:

$ExampleModule = Import-Module example.psd1
$ExampleModule.Version
$ExampleModule.Version.GetType().Name
Major  Minor  Build  Revision
-----  -----  -----  --------
1      2      3      -1

Version

UyumluPSEditions

Bu ayar modülün uyumlu PSEditions'ını belirtir.

Değer
Giriş Türü System.String[]
kabul edilen değerleri Desktop, Core
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Bu ayarın değeri $nullise, oturumun PSEdition değeri ne olursa olsun modül içeri aktarılabilir. Kabul edilen değerlerden birine veya daha fazlasına ayarlayabilirsiniz.

PSEdition hakkında bilgi için bkz:

Bu ayar tanımlandığında modül yalnızca $PSEdition otomatik değişkenin değerinin ayara dahil edildiği bir oturuma aktarılabilir.

Not

$PSEdition otomatik değişkeni sürüm 5.1'de sunulduğundan, Windows PowerShell'in eski sürümleri CompatiblePSEditions ayarını kullanan bir modülü yükleyemez.

Örneğin, bu modül bildirimini herhangi bir oturumda içeri aktarabilirsiniz:

@{
    # CompatiblePSEditions = @()
}

Belirtilen ayarla, bu modül yalnızca $PSEdition otomatik değişkenin değerinin Coreolduğu oturumlarda içeri aktarılabilir.

@{
    CompatiblePSEditions = @('Core')
}

GUID

Bu ayar modül için benzersiz bir tanımlayıcı belirtir. GUID, aynı ada sahip modülleri ayırt etmek için kullanılır.

Değer
Giriş Türü System.String
Gerekli Hayır
Değeri 00000000-0000-0000-0000-000000000000
Joker karakter kabul eder Hayır

System.Guidçalıştırdığınızda bu ayarın değeri Import-Module dönüştürülebilir olmalıdır.

Dikkat

Gerekli bir ayar olmasa da bildirimde GUID belirtilmemesi hiçbir avantaj sağlamaz ve modüller için ad çakışmalarına neden olabilir.

Bildiriminizde kullanmak için yeni bir guid oluşturabilirsiniz:

New-Guid | Select-Object -ExpandProperty Guid
8456b025-2fa5-4034-ae47-e6305f3917ca
@{
    GUID = '8456b025-2fa5-4034-ae47-e6305f3917ca'
}

Makinede aynı ada sahip başka bir modül varsa, modülün tam adını belirterek istediğiniz modülü içeri aktarmaya devam edebilirsiniz:

Import-Module -FullyQualifiedName @{
    ModuleName    = 'Example'
    GUID          = '8456b025-2fa5-4034-ae47-e6305f3917ca'
    ModuleVersion = '1.0.0'
}

Author

Bu ayar modül yazarını tanımlar.

Değer
Giriş Türü System.String
Gerekli PowerShell Gallery
Değeri $null
Joker karakter kabul eder Hayır

Bu bildirim, modülün yazarının Contoso Geliştirici Deneyimi Ekibi olduğunu bildirir.

@{
    Author = 'Contoso Developer Experience Team'
}

Şirket Adı

Bu ayar, modülü oluşturan şirketi veya satıcıyı tanımlar.

Değer
Giriş Türü System.String
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Bu bildirim, modülün Contoso, Ltd. tarafından oluşturulduğunu bildirir.

@{
    CompanyName = 'Contoso, Ltd.'
}

Bu ayar modül için bir telif hakkı bildirimi belirtir.

Değer
Giriş Türü System.String
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Bu bildirim, 2022'den itibaren Contoso, Ltd. için tüm hakların saklı olduğu bir telif hakkı bildirimi bildirir.

@{
    Copyright = '(c) 2022 Contoso, Ltd. All rights reserved.'
}

Description

Bu ayar, modülü yüksek düzeyde açıklar.

Değer
Giriş Türü System.String
Gerekli PowerShell Gallery
Değeri $null
Joker karakter kabul eder Hayır

Bu bildirim kısa bir açıklama içerir. Daha uzun veya çok satırlı bir açıklama yazmak için here-string de kullanabilirsiniz.

@{
    Description = 'Example commands to show a valid module manifest'
}

PowerShellVersion

Bu ayar, bu modülün gerektirdiği en düşük PowerShell sürümünü belirtir.

Değer
Giriş Türü System.String
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

System.Versionçalıştırdığınızda bu ayarın değeri Import-Module dönüştürülebilir olmalıdır.

Bu ayar ayarlı değilse PowerShell modülün içeri aktarma işlemini geçerli sürüme göre kısıtlamaz.

Örneğin, bu bildirim modülün PowerShell ve Windows PowerShell'in her sürümüyle uyumlu olduğunu bildirir.

@{
    # PowerShellVersion = ''
}

PowerShellVersion7.2olarak ayarlandığında, modülü yalnızca PowerShell 7.2 veya sonraki sürümlerde içeri aktarabilirsiniz.

@{
    PowerShellVersion = '7.2'
}

PowerShellHostName

Bu ayar, modülün gerektirdiği Windows PowerShell ISE Konak veya ConsoleHostgibi PowerShell konak programının adını belirtir.

Değer
Giriş Türü System.String
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

$Host.Name deyimiyle bir oturum için konağın adını bulabilirsiniz. Örneğin, uzak oturum için konağın ConsoleHostyerine ServerRemoteHost olduğunu görebilirsiniz:

$Host.Name
Enter-PSSession -ComputerName localhost
$Host.Name
ConsoleHost
[localhost]: PS C:\Users\username\Documents> $Host.Name
ServerRemoteHost

Bu modül herhangi bir konağa aktarılabilir.

@{
    # PowerShellHostName = ''
}

PowerShellHostNameServerRemoteHostolarak ayarlandığında, modülü yalnızca uzak bir PowerShell oturumunda içeri aktarabilirsiniz.

@{
    PowerShellHostName = 'ServerRemoteHost'
}

PowerShellHostVersion

Bu ayar, modülün gerektirdiği en düşük PowerShell konak programı sürümünü belirtir.

Değer
Giriş Türü System.String
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

System.Versionçalıştırdığınızda bu ayarın değeri Import-Module dönüştürülebilir olmalıdır.

Dikkat

Bu ayar PowerShellHostName ayarı olmadan kullanılabilse de beklenmeyen davranış olasılığını artırır. Bu ayarı yalnızca PowerShellHostName ayarını da kullanırken kullanın.

Örneğin, bu bildirimin modülü, konağın sürümünden bağımsız olarak ConsoleHostiçinde çalışan herhangi bir PowerShell oturumundan içeri aktarılabilir.

@{
    PowerShellHostName = 'ConsoleHost'
    # PowerShellHostVersion = ''
}

PowerShellHostVersion5.1olarak ayarlandığında, modülü yalnızca konağın sürümünün 5.1 veya üzeri olduğu ConsoleHost çalışan herhangi bir PowerShell oturumundan içeri aktarabilirsiniz.

@{
    PowerShellHostName    = 'ConsoleHost'
    PowerShellHostVersion = '5.1'
}

DotNetFrameworkVersion

Bu ayar, modülün gerektirdiği en düşük Microsoft .NET Framework sürümünü belirtir.

Değer
Giriş Türü System.String
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Not

Bu ayar yalnızca Windows PowerShell 5.1 gibi PowerShell Desktop sürümü için geçerlidir ve yalnızca 4.5'ten küçük .NET Framework sürümleri için geçerlidir. Bu gereksinimin PowerShell'in veya .NET Framework'ün daha yeni sürümleri için hiçbir etkisi yoktur.

System.Versionçalıştırdığınızda bu ayarın değeri Import-Module dönüştürülebilir olmalıdır.

Örneğin, bu bildirim modülünün Microsoft .NET Framework sürümünden bağımsız olarak herhangi bir PowerShell veya Windows PowerShell oturumunda içeri aktarılabildiğini bildirir.

@{
    # DotNetFrameworkVersion = ''
}

DotNetFrameworkVersion4.0olarak ayarlandığında, bu modülü Microsoft .NET Framework'ün kullanılabilir en son sürümünün en az 4.0 olduğu herhangi bir Windows PowerShell oturumunda içeri aktarabilirsiniz. Ayrıca herhangi bir PowerShell oturumunda da içeri aktarabilirsiniz.

@{
    DotNetFrameworkVersion = '4.0'
}

CLRVersion

Bu ayar, modülün gerektirdiği Microsoft .NET Framework'ün Ortak Dil Çalışma Zamanı'nın (CLR) en düşük sürümünü belirtir.

Değer
Giriş Türü System.String
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Not

Bu ayar yalnızca Windows PowerShell 5.1 gibi PowerShell Desktop sürümü için geçerlidir ve yalnızca 4.5'ten küçük .NET Framework sürümleri için geçerlidir. Bu gereksinimin PowerShell'in veya .NET Framework'ün daha yeni sürümleri için hiçbir etkisi yoktur.

System.Versionçalıştırdığınızda bu ayarın değeri Import-Module dönüştürülebilir olmalıdır.

Örneğin, bu bildirim modülünün Microsoft .NET Framework'ün CLR sürümünün sürümünden bağımsız olarak herhangi bir PowerShell veya Windows PowerShell oturumunda içeri aktarılabildiğini bildirir.

@{
    # CLRVersion = ''
}

CLRVersion4.0olarak ayarlandığında, bu modülü, CLR'nin kullanılabilir en son sürümünün en az 4.0 olduğu herhangi bir Windows PowerShell oturumunda içeri aktarabilirsiniz. Ayrıca herhangi bir PowerShell oturumunda da içeri aktarabilirsiniz.

@{
    CLRVersion = '4.0'
}

ProcessorArchitecture

Bu ayar, modülün gerektirdiği işlemci mimarisini belirtir.

Değer
Giriş Türü System.String
kabul edilen değerleri None, MSIL, X86, , IA64, Amd64, Arm
Gerekli Hayır
Değeri None
Joker karakter kabul eder Hayır

System.Reflection.ProcessorArchitectureçalıştırdığınızda bu ayarın değeri Import-Module dönüştürülebilir olmalıdır.

Örneğin, bu bildirim, modülünün sistemin işlemci mimarisinden bağımsız olarak herhangi bir oturumda içeri aktarılabildiğini bildirir.

@{
    # ProcessorArchitecture = ''
}

ProcessorArchitectureAmd64olarak ayarlandığında, bu modülü yalnızca eşleşen mimariye sahip bir makinede çalışan bir oturumda içeri aktarabilirsiniz.

@{
    ProcessorArchitecture = 'Amd64'
}

RequiredModules

Bu ayar, genel oturum durumunda olması gereken modülleri belirtir. Gerekli modüller genel oturum durumunda değilse PowerShell bunları içeri aktarır. Gerekli modüller kullanılamıyorsa Import-Module komutu başarısız olur.

Değer
Giriş Türü System.String[], System.Collections.Hashtable[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Bu ayarın girdileri modül adı, tam modül belirtimi veya modül dosyasının yolu olabilir.

Değer bir yol olduğunda, yol tam veya göreli olabilir.

Değer bir ad veya modül belirtimi olduğunda PowerShell, belirtilen modülü psmodulepath arar.

Modül belirtimi, aşağıdaki anahtarlara sahip bir karma tablodur.

  • ModuleName - Gerekli. Modül adını belirtir.
  • GUID - İsteğe bağlı. Modülün GUID değerini belirtir.
  • Ayrıca aşağıdaki üç anahtardan en az birini belirtmek için Gerekli . RequiredVersion anahtarı ModuleVersion veya MaximumVersion anahtarlarla kullanılamaz. ModuleVersion ve MaximumVersion anahtarlarını birlikte belirterek modül için kabul edilebilir bir sürüm aralığı tanımlayabilirsiniz.
    • ModuleVersion - Modülün kabul edilebilir en düşük sürümünü belirtir.
    • RequiredVersion - Modülün tam ve gerekli bir sürümünü belirtir.
    • MaximumVersion - Modülün kabul edilebilir en yüksek sürümünü belirtir.

Not

RequiredVersion Windows PowerShell 5.0'a eklendi. MaximumVersion Windows PowerShell 5.1'e eklendi.

Örneğin, bu bildirim modülünün işlevselliği için başka modül gerektirmediğini bildirir.

@{
    # RequiredModules = @()
}

Bu bildirim, PSReadLine modülünü gerektirdiğini bildirir. Bu bildirimde Import-Module çalıştırdığınızda PowerShell, oturumda kullanılabilen en son PSReadLine sürümünü içeri aktarır. Kullanılabilir sürüm yoksa içeri aktarma işlemi bir hata döndürür.

@{
    RequiredModules = @(
        'PSReadLine'
    )
}

Bahşiş

PowerShell 2.0'da Import-Module gerekli modülleri otomatik olarak içeri aktarmaz. Yalnızca gerekli modüllerin genel oturum durumunda olduğunu doğrular.

Bu bildirim, kendi modül klasöründe satıcıya sunulan PSReadLine modülünün bir sürümünü gerektirdiğini bildirir. Bu bildirimde Import-Module çalıştırdığınızda, PowerShell satıcıya ait PSReadLine'ı belirtilen yoldan içeri aktarır.

@{
    RequiredModules = @(
        'Vendored\PSReadLine\PSReadLine.psd1'
    )
}

Bu bildirim özellikle PSReadLine modülünün 2.0.0 sürümünü gerektirdiğini bildirir. Bu bildirimde Import-Module çalıştırdığınızda PowerShell, varsa PSReadLine'ın 2.0.0 sürümünü içeri aktarır. Kullanılamıyorsa, Import-Module bir hata döndürür.

@{
    RequiredModules = @(
        @{
            ModuleName      = 'PSReadLine'
            RequiredVersion = '2.0.0'
        }
    )
}

Bu bildirim, PSReadLine modülünün 2.0.0 veya üzeri bir sürümde içeri aktarılmasını gerektirdiğini bildirir.

@{
    RequiredModules = @(
        @{
            ModuleName    = 'PSReadLine'
            ModuleVersion = '2.0.0'
        }
    )
}

Bu bildirim, PSReadLine modülünün 2.0.0 veya daha düşük bir sürümde içeri aktarılmasını gerektirdiğini bildirir.

@{
    RequiredModules = @(
        @{
            ModuleName     = 'PSReadLine'
            MaximumVersion = '2.0.0'
        }
    )
}

Bu bildirim, PSDesiredStateConfiguration modülünün 2.0.0'a eşit veya 2.99.99'dan yüksek olmayan bir sürümde içeri aktarılmasını gerektirdiğini bildirir.

@{
    RequiredModules = @(
        @{
            ModuleName     = 'PSDesiredStateConfiguration'
            ModuleVersion  = '2.0.0'
            MaximumVersion = '2.99.99'
        }
    )
}

RequiredAssemblies

Bu ayar, modülün gerektirdiği derleme (.dll) dosyalarını belirtir. PowerShell türleri veya biçimleri güncelleştirmeden, iç içe modülleri içeri aktarmadan veya RootModule anahtarı değerinde belirtilen modül dosyasını içeri aktarmadan önce belirtilen derlemeleri yükler.

Değer
Giriş Türü System.String[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Bu ayarın girdileri, derlemenin dosya adı veya bir derlemenin yolu olabilir. NestedModules ayarında ikili modüller olarak listelenseler bile tüm gerekli derlemeleri listeleyin.

Bu bildirim, example.dll derlemesini gerektirir. Bu bildirimde belirtilen biçimlendirme veya tür dosyalarını yüklemeden önce PowerShell, modül bildirimiyle aynı dizinde bulunan example.dll klasöründen Assemblies yükler.

@{
    RequiredAssemblies = @(
        'Assemblies\Example.dll'
    )
}

ScriptsToProcess

Bu ayar, modül içeri aktarıldığında çağıranın oturum durumunda çalıştırılan betik (.ps1) dosyalarını belirtir. Bu betikleri, oturum açma betiği gibi bir ortam hazırlamak için de kullanabilirsiniz.

Değer
Giriş Türü System.String[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Modülün oturum durumunda çalışan betikleri belirtmek için NestedModules anahtarını kullanın.

Bu bildirimi içeri aktardığınızda PowerShell geçerli oturumunuzda Initialize.ps1 çalıştırır.

@{
    ScriptsToProcess = @(
        'Scripts\Initialize.ps1'
    )
}

Örneğin, Initialize.ps1 bilgilendiren iletiler yazar ve $ExampleState değişkenini ayarlarsa:

if ([string]::IsNullOrEmpty($ExampleState)) {
    Write-Information "Example not initialized."
    Write-Information "Initializing now..."
    $ExampleState = 'Initialized'
} else {
    Write-Information "Example already initialized."
}

Modülü içeri aktardığınızda betik çalıştırılır, bu iletiler yazılır ve oturumunuzda $ExampleState ayarlanır.

$InformationPreference = 'Continue'
"Example State is: $ExampleState"
Import-Module .\example7x.psd1
"Example State is: $ExampleState"
Import-Module .\example7x.psd1 -Force
Example State is:

Example not initialized.
Initializing now...

Example State is: Initialized

Example already initialized.

TypesToProcess

Bu ayar, modül içeri aktarıldığında çalıştırılan tür dosyalarını (.ps1xml) belirtir.

Değer
Giriş Türü System.String[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Modülü içeri aktardığınızda PowerShell, belirtilen dosyalarla Update-TypeData cmdlet'ini çalıştırır. Tür dosyalarının kapsamı olmadığından, bunlar oturumdaki tüm oturum durumlarını etkiler.

Tür dosyaları hakkında daha fazla bilgi için bkz. about_Types.ps1xml

Örneğin, bu bildirimi içeri aktardığınızda PowerShell, modül bildirimiyle aynı dizinde bulunan Example.ps1xml klasöründen Types dosyasında belirtilen türleri yükler.

@{
    TypesToProcess = @(
        'Types\Example.ps1xml'
    )
}

FormatsToProcess

Bu ayar, modül içeri aktarıldığında çalıştırılan biçimlendirme dosyalarını (.ps1xml) belirtir.

Değer
Giriş Türü System.String[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Bir modülü içeri aktardığınızda PowerShell, belirtilen dosyalarla Update-FormatData cmdlet'ini çalıştırır. Biçimlendirme dosyalarının kapsamı olmadığından, bunlar oturumdaki tüm oturum durumlarını etkiler.

Tür dosyaları hakkında daha fazla bilgi için bkz. about_Format.ps1xml

Örneğin, bu modülü içeri aktardığınızda PowerShell, modül bildirimiyle aynı dizinde bulunan Example.ps1xml klasöründen Formats dosyasında belirtilen biçimleri yükler.

@{
    FormatsToProcess = @(
        'Formats\Example.ps1xml'
    )
}

nestedModules

Bu ayar, modülün oturum durumuna aktarılan betik modüllerini (.psm1) ve ikili modülleri (.dll) belirtir. Betik dosyalarını da belirtebilirsiniz (.ps1). Bu ayardaki dosyalar listelendikleri sırayla çalışır.

Değer
Giriş Türü System.String[], System.Collections.Hashtable[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Bu ayarın girdileri bir modül adı, tam modül belirtimi veya modül ya da betik dosyasının yolu olabilir.

Değer bir yol olduğunda, yol tam veya göreli olabilir.

Değer bir modül adı veya belirtimi olduğunda PowerShell, belirtilen modülü psmodulepath arar.

Modül belirtimi, aşağıdaki anahtarlara sahip bir karma tablodur.

  • ModuleName - Gerekli. Modül adını belirtir.
  • GUID - İsteğe bağlı. Modülün GUID değerini belirtir.
  • Ayrıca aşağıdaki üç anahtardan en az birini belirtmek için Gerekli . RequiredVersion anahtarı ModuleVersion veya MaximumVersion anahtarlarla kullanılamaz. ModuleVersion ve MaximumVersion anahtarlarını birlikte belirterek modül için kabul edilebilir bir sürüm aralığı tanımlayabilirsiniz.
    • ModuleVersion - Modülün kabul edilebilir en düşük sürümünü belirtir.
    • RequiredVersion - Modülün tam ve gerekli bir sürümünü belirtir.
    • MaximumVersion - Modülün kabul edilebilir en yüksek sürümünü belirtir.

Not

RequiredVersion Windows PowerShell 5.0'a eklendi. MaximumVersion Windows PowerShell 5.1'e eklendi.

İç içe bir modülden dışarı aktarılması gereken öğeler, Export-ModuleMember cmdlet'i kullanılarak iç içe modül tarafından dışarı aktarılmalıdır veya dışarı aktarma özelliklerinden birinde listelenmelidir:

  • FunctionsToExport
  • CmdletsToExport
  • VariablesToExport
  • AliasesToExport

Modül oturum durumundaki iç içe yerleştirilmiş modüller kök modülde kullanılabilir, ancak çağıranın oturum durumundaki bir Get-Module komutu tarafından döndürülemez.

Bu ayarda listelenen betikler (.ps1), çağıranın oturum durumunda değil modülün oturum durumunda çalıştırılır. Çağıranın oturum durumunda bir betik çalıştırmak için betik dosya adını ScriptsToProcess ayarında listeleyin.

Örneğin, bu bildirimi içeri aktardığınızda, Helpers.psm1 modülü kök modülün oturum durumuna yüklenir. İç içe modülde bildirilen tüm cmdlet'ler, aksi kısıtlanmadığı sürece dışarı aktarılır.

@{
    NestedModules = @(
        'Helpers\Helpers.psm1'
    )
}

FunctionsToExport

Bu ayar, modülün dışarı aktardığını işlevleri belirtir. Modül tarafından dışarı aktarılan işlevleri kısıtlamak için bu ayarı kullanabilirsiniz. Dışarı aktarılan işlevler listesinden işlevleri kaldırabilir, ancak listeye işlev ekleyemez.

Değer
Giriş Türü System.String[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Evet

Bu ayardaki girdileri joker karakterlerle belirtebilirsiniz. Dışarı aktarılan işlevler listesindeki tüm eşleşen işlevler dışarı aktarılır.

Bahşiş

Performans ve bulunabilirlik için, modülünüzün bu ayarda herhangi bir joker karakter kullanmadan dışarı aktarmasını istediğiniz işlevleri her zaman açıkça listelemeniz gerekir.

Örneğin, ayarın açıklama eklendiği bir modülü içeri aktardığınızda, kök modüldeki tüm işlevler ve iç içe yerleştirilmiş modüller dışarı aktarılır.

@{
    # FunctionsToExport = @()
}

Bu bildirim, ayarın belirtilmemesiyle işlevsel olarak aynıdır.

@{
    FunctionsToExport = '*'
}

FunctionsToExport boş bir dizi olarak ayarlandığında, bu modülü içeri aktardığınızda kök modül veya iç içe yerleştirilmiş modül dışarı aktarma işlemi kullanılamaz.

@{
    FunctionsToExport = @()
}

Not

modül bildiriminizi New-ModuleManifest komutuyla oluşturur ve functionsToExport parametresini belirtmezseniz, oluşturulan bildirimde bu ayar boş bir dizi olarak belirtilir. Bildirimi düzenlemediğiniz sürece modüldeki hiçbir işlev dışarı aktarılmaz.

FunctionsToExport yalnızca Get-Example işlevini içerecek şekilde ayarlandığında, bu modülü içeri aktardığınızda, diğer işlevler kök modül veya iç içe yerleştirilmiş modüller tarafından dışarı aktarılmış olsa bile yalnızca Get-Example işlevi kullanılabilir duruma getirilir.

@{
    FunctionsToExport = @(
        'Get-Example'
    )
}

FunctionsToExport joker karakter dizesiyle ayarlandığında, bu modülü içeri aktardığınızda, adı Example ile biten herhangi bir işlev, diğer işlevler kök modül veya iç içe yerleştirilmiş modüller tarafından modül üyesi olarak dışarı aktarılmış olsa bile kullanılabilir duruma getirilir.

@{
    FunctionsToExport = @(
        '*Example'
    )
}

CmdletsToExport

Bu ayar, modülün dışarı aktarıldığı cmdlet'leri belirtir. Modül tarafından dışarı aktarılan cmdlet'leri kısıtlamak için bu ayarı kullanabilirsiniz. Dışarı aktarılan modül üyeleri listesinden cmdlet'leri kaldırabilir, ancak listeye cmdlet ekleyemez.

Değer
Giriş Türü System.String[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Evet

Bu ayardaki girdileri joker karakterlerle belirtebilirsiniz. Dışarı aktarılan cmdlet'ler listesindeki tüm eşleşen cmdlet'ler dışarı aktarılır.

Bahşiş

Performans ve bulunabilirlik için, modülünüzün bu ayarda herhangi bir joker karakter kullanmadan dışarı aktarmasını istediğiniz cmdlet'leri her zaman açıkça listelemeniz gerekir.

Örneğin, bu ayar açıklama eklenmiş bir modülü içeri aktardığınızda, kök modüldeki tüm cmdlet'ler ve iç içe yerleştirilmiş modüller dışarı aktarılır.

@{
    # CmdletsToExport = @()
}

Bu bildirim, ayarın belirtilmemesiyle işlevsel olarak aynıdır.

@{
    CmdletsToExport = '*'
}

CmdletsToExport boş bir dizi olarak ayarlandığında, bu modülü içeri aktardığınızda kök modül cmdlet'leri veya iç içe modülleri dışarı aktarma kullanılamaz.

@{
    CmdletsToExport = @()
}

Not

modül bildiriminizi New-ModuleManifest komutuyla oluşturur ve CmdletsToExport parametresini belirtmezseniz, oluşturulan bildirimde bu ayar boş bir dizi olarak belirtilir. Bildirimi düzenlemediğiniz sürece modüldeki hiçbir cmdlet dışarı aktarılmaz.

Cmdlet'lerToExport yalnızca Get-Example cmdlet'ini içerecek şekilde ayarlandığında, bu modülü içeri aktardığınızda, diğer cmdlet'ler kök modül veya iç içe yerleştirilmiş modüller tarafından dışarı aktarılmış olsa bile yalnızca Get-Example cmdlet kullanılabilir duruma getirilir.

@{
    CmdletsToExport = @(
        'Get-Example'
    )
}

CmdletsToExport joker karakter dizesiyle ayarlandığında, bu modülü içeri aktardığınızda, diğer cmdlet'ler kök modül veya iç içe yerleştirilmiş modüller tarafından modül üyesi olarak dışarı aktarılmış olsa bile adı Example ile biten cmdlet'ler kullanılabilir duruma getirilir.

@{
    CmdletsToExport = @(
        '*Example'
    )
}

VariablesToExport

Bu ayar, modülün dışarı aktardığını değişkenleri belirtir. Modül tarafından dışarı aktarılan değişkenleri kısıtlamak için bu ayarı kullanabilirsiniz. Dışarı aktarılan modül üyeleri listesinden değişkenleri kaldırabilir, ancak listeye değişken ekleyemez.

Değer
Giriş Türü System.String[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Evet

Bu ayardaki girdileri joker karakterlerle belirtebilirsiniz. Dışarı aktarılan modül üyeleri listesindeki tüm eşleşen değişkenler dışarı aktarılır.

Bahşiş

Performans ve bulunabilirlik için, modülünüzün bu ayarda herhangi bir joker karakter kullanmadan dışarı aktarmasını istediğiniz değişkenleri her zaman açıkça listelemeniz gerekir.

Örneğin, bu ayarın açıklama eklendiği bir modülü içeri aktardığınızda, kök modüldeki tüm değişkenler ve iç içe yerleştirilmiş modüller dışarı aktarılır.

@{
    # VariablesToExport = @()
}

Bu bildirim, ayarın belirtilmemesiyle işlevsel olarak aynıdır.

@{
    VariablesToExport = '*'
}

Not

modül bildiriminizi New-ModuleManifest komutuyla oluşturur ve VariablesToExport parametresini belirtmezseniz, oluşturulan bildirimde bu ayar '*'olarak belirtilir. Bildirimi düzenlemediğiniz sürece modüldeki tüm değişkenler dışarı aktarılır.

VariablesToExport boş bir dizi olarak ayarlandığında, bu modülü içeri aktardığınızda kök modül veya iç içe modülleri dışarı aktarma kullanılabilir durumda değildir.

@{
    VariablesToExport = @()
}

VariablesToExport yalnızca SomeExample değişkenini içerecek şekilde ayarlandığında, bu modülü içeri aktardığınızda kök modül veya iç içe yerleştirilmiş modüller tarafından diğer değişkenler dışarı aktarılmış olsa bile yalnızca $SomeExample değişkeni kullanılabilir duruma getirilir.

@{
    VariablesToExport = @(
        'SomeExample'
    )
}

VariablesToExport joker karakter dizesiyle ayarlandığında, bu modülü içeri aktardığınızda, adı Example ile biten herhangi bir değişken, diğer değişkenler kök modül veya iç içe yerleştirilmiş modüller tarafından modül üyesi olarak dışarı aktarılmış olsa bile kullanılabilir duruma getirilir.

@{
    VariablesToExport = @(
        '*Example'
    )
}

DscResourcesToExport

Bu ayar, modülün dışarı aktardığını DSC Kaynaklarını belirtir. Modül tarafından dışarı aktarılan sınıf tabanlı DSC Kaynaklarını kısıtlamak için bu ayarı kullanabilirsiniz. Dışarı aktarılan modül üyeleri listesinden DSC Kaynaklarını kaldırabilir, ancak DSC Kaynaklarını listeye ekleyemez.

Değer
Giriş Türü System.String[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Evet

Bu ayardaki girdileri joker karakterlerle belirtebilirsiniz. Modüldeki tüm eşleşen sınıf tabanlı DSC Kaynakları dışarı aktarılır.

Bahşiş

Bulunabilirlik için modülünüzün dışarı aktarmış olduğu tüm DSC Kaynaklarını her zaman açıkça listelemeniz gerekir.

DSC Kaynaklarını yazma ve kullanma hakkında daha fazla bilgi için DSC içinbelgelerine bakın.

Bu bildirim, kök modülde ve iç içe yerleştirilmiş modüllerde tanımlanan tüm sınıf tabanlı ve MOF tabanlı DSC Kaynaklarını dışarı aktarır.

@{
    # DscResourcesToExport = @()
}

Bu bildirim, kök modülde ve iç içe yerleştirilmiş modüllerde tanımlanan tüm MOF tabanlı DSC Kaynaklarını dışarı aktarır, ancak yalnızca bir sınıf tabanlı DSC Kaynağı ExampleClassResource.

@{
    DscResourcesToExport = @(
        'ExampleClassResource'
    )
}

Bu bildirim, içerdiği tüm DSC Kaynaklarını dışarı aktarır. MOF-Based kaynağı listelenmemiş olsa bile modül bunu dışarı aktarmaya devam eder.

@{
    DscResourcesToExport = @(
        'ExampleClassResource'
        'ExampleMofResourceFirst'
    )
}

ModuleList

Bu ayar, bu ayarda yer alan modüllerin bilgi envanter listesidir. Bu liste modülün davranışını etkilemez.

Değer
Giriş Türü System.String[], System.Collections.Hashtable[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Bu ayarın girdileri bir modül adı, tam modül belirtimi veya modül ya da betik dosyasının yolu olabilir.

Değer bir yol olduğunda, yol tam veya göreli olabilir.

Değer bir modül adı veya belirtimi olduğunda PowerShell, belirtilen modülü psmodulepath arar.

Modül belirtimi, aşağıdaki anahtarlara sahip bir karma tablodur.

  • ModuleName - Gerekli. Modül adını belirtir.
  • GUID - İsteğe bağlı. Modülün GUID değerini belirtir.
  • Ayrıca aşağıdaki üç anahtardan en az birini belirtmek için Gerekli . RequiredVersion anahtarı ModuleVersion veya MaximumVersion anahtarlarla kullanılamaz. ModuleVersion ve MaximumVersion anahtarlarını birlikte belirterek modül için kabul edilebilir bir sürüm aralığı tanımlayabilirsiniz.
    • ModuleVersion - Modülün kabul edilebilir en düşük sürümünü belirtir.
    • RequiredVersion - Modülün tam ve gerekli bir sürümünü belirtir.
    • MaximumVersion - Modülün kabul edilebilir en yüksek sürümünü belirtir.

Not

RequiredVersion Windows PowerShell 5.0'a eklendi. MaximumVersion Windows PowerShell 5.1'e eklendi.

Bu bildirim, içerdiği modüllerin bilgi listesini sağlamaz. Modülleri olabilir veya olmayabilir. Bu ayar belirtilmemiş olsa da, RootModule, ScriptsToProcessveya nestedModules ayarları listelenen modüller normal şekilde davranır.

@{
    # ModuleList = @()
}

Bu bildirim, içerdiği tek modüllerin Example.psm1 ve First.psm1 klasöründeki alt modüllerin Second.psm1 ve Submodules olduğunu bildirir.

@{
    ModuleList = @(
        'Example.psm1'
        'Submodules\First.psm1'
        'Submodules\Second.psm1'
    )
}

Dosya Listesi

Bu ayar, bu modülde yer alan dosyaların bilgi envanter listesidir. Bu liste modülün davranışını etkilemez.

Değer
Giriş Türü System.String[]
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Evet

Bu ayarın girdileri, modül bildirimini içeren klasörden bir dosyanın göreli yolu olmalıdır.

Kullanıcı bu ayar tanımlı bir bildirime karşı Get-Module çağırdığında, FileList özelliği bu dosyaların tam yolunu içerir ve modülün yolunu her girdinin göreli yoluyla birleştirir.

Bu bildirim, dosyalarının listesini içermez.

@{
    # FileList = @()
}

Bu bildirim, içerdiği tek dosyaların bu ayarda listelendiğini bildirir.

@{
    FileList = @(
        'Example.psd1'
        'Example.psm1'
        'Assemblies\Example.dll'
        'Scripts\Initialize.ps1'
        'Submodules\First.psm1'
        'Submodules\Second.psm1'
    )
}

PrivateData

Bu ayar, kök modülün kapsamındaki tüm komutların veya işlevlerin kullanabileceği bir karma veri tablosu tanımlar.

Değer
Giriş Türü System.Collections.Hashtable
Gerekli PowerShell GalleryKreşendo
Değeri $null
Joker karakter kabul eder Hayır

Yeni bir modül oluşturmak için bir Crescendo bildirimini dışarı aktardığınızda Export-CrescendoModule privatedata iki anahtar ekler

  • CrescendoGenerated - modülün dışarı aktarıldığı zaman damgası
  • CrescendoVersion - modülü dışarı aktarmak için kullanılan Crescendo sürümü

İzlemek istediğiniz meta verileri tutmak için kendi anahtarlarınızı ekleyebilirsiniz. Bu ayara eklenen tüm anahtarlar, $MyInvocation.MyCommand.Module.PrivateDatakullanılarak kök modüldeki işlevler ve cmdlet'ler tarafından kullanılabilir. Karma tablo modül kapsamında kullanılamaz, yalnızca modülde tanımladığınız cmdlet'lerde kullanılabilir.

Örneğin, bu bildirim PrivateDataiçindeki PublishedDate anahtarını tanımlar.

@{
    PrivateData = @{
        PublishedDate = '2022-06-01'
    }
}

Modüldeki cmdlet'ler bu değere $MyInvocation değişkeniyle erişebilir.

function Get-Stale {
    [CmdletBinding()]
    param()

    $PublishedDate = $MyInvocation.MyCommand.Module.PrivateData.PublishedDate
    $CurrentDate = Get-Date

    try {
        $PublishedDate = Get-Date -Date $PublishedDate -ErrorAction Stop
    } catch {
        # The date was set in the manifest, set to an invalid value, or
        # the script module was directly imported without the manifest.
        throw "Unable to determine published date. Check the module manifest."
    }

    if ($CurrentDate -gt $PublishedDate.AddDays(30)) {
        Write-Warning "This module version was published more than 30 days ago."
    } else {
        $TimeUntilStale = $PublishedDate.AddDays(30) - $CurrentDate
        "This module will be stale in $($TimeUntilStale.Days) days"
    }
}

Modül içeri aktarıldıktan sonra işlev, modülün ne zaman yayımlandığını belirlemek için PrivateData değerini kullanır.

Get-Stale -TestDate '2022-06-15'
Get-Stale -TestDate '2022-08-01'
This module will be stale in 16 days

WARNING: This module version was published more than 30 days ago.

PrivateData.PSData

PSData alt özelliği, belirli uzantı senaryolarını destekleyen değerlerin karma tablosunu tanımlar.

Değer
Giriş Türü System.Collections.Hashtable
Gerekli PowerShell Gallery, Deneysel özellikler, Crescendo modülleri
Değeri $null
Joker karakter kabul eder Hayır

PsData alt özelliği aşağıdaki senaryolar için kullanılır:

  • PowerShell Gallery - cmdlet'ini kullanarak New-ModuleManifest bir modül bildirimi oluşturduğunuzda , PSData karma tablosuna modülü'nde PowerShell Galleryyayımlarken gereken yer tutucu anahtarlarla önceden doldurur. Modül bildirimleri ve PowerShell Galerisi'nde yayımlama hakkında daha fazla bilgi için bkz. Kullanıcı arabirimini PowerShell Gallery etkileyen paket bildirimi değerleri.
  • Deneysel özellikler - Deneysel bir özellik hakkındaki meta veriler, PSDataExperimentalFeatures özelliğinde tutulur. ExperimentalFeatures özelliği, özelliğin adını ve açıklamasını içeren bir karma tablo dizisidir. Daha fazla bilgi için bkz. modüllerde deneysel özellikleri bildirme.
  • Crescendo modülleri - Yeni bir modül oluşturmak için bir Crescendo bildirimini dışarı aktardığınızda Export-CrescendoModuleCrescendoBuilt özelliğine değerini ekler. Içinde Crescendo kullanılarak oluşturulan modülleri PowerShell Gallery bulmak için bu etiketi kullanabilirsiniz. Daha fazla bilgi için bkz. export-CrescendoModule .
  • PSData.ExternalModuleDependencies özelliği, bu modülün bağımlılıkları olan modül adları dizisidir. Bu özellik yalnızca bilgilendirme amaçlıdır ve modül yüklemesini veya yüklemesini etkilemez.

HelpInfoURI

Bu ayar, modülün HelpInfo XML dosyasının internet adresini belirtir.

Değer
Giriş Türü System.String
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Bu ayarın değeri, http veya httpsile başlayan bir Tekdüzen Kaynak Tanımlayıcısı (URI) olmalıdır.

HelpInfo XML dosyası, PowerShell 3.0'da kullanıma sunulan Güncelleştirilebilir Yardım özelliğini destekler. Modül için indirilebilir yardım dosyalarının konumu ve desteklenen her yerel ayar için en yeni yardım dosyalarının sürüm numaraları hakkında bilgi içerir.

Güncelleştirilebilir Yardım hakkında bilgi için bkz. about_Updatable_Help. HelpInfo XML dosyası hakkında bilgi için bkz. Güncelleştirilebilir Yardım Destekleme.

Örneğin, bu modül güncelleştirilebilir yardımı destekler.

@{
    HelpInfoUri = 'http://https://go.microsoft.com/fwlink/?LinkID=603'
}

DefaultCommandPrefix

Bu ayar, bir oturuma aktarıldığında modüldeki tüm komutların adlarına eklenen bir ön ek belirtir. Ön ekler, kullanıcının oturumunda komut adı çakışmalarını önlemeye yardımcı olur.

Değer
Giriş Türü System.String
Gerekli Hayır
Değeri $null
Joker karakter kabul eder Hayır

Modül kullanıcıları, cmdlet'in Import-Module parametresini belirterek bu ön eki geçersiz kılabilir.

Bu ayar PowerShell 3.0'da kullanıma sunulmuştur.

Bu bildirim içeri aktarıldığında, bu modülden içeri aktarılan tüm cmdlet'ler adına Example ada eklenir. Örneğin, Get-ItemGet-ExampleItemolarak içeri aktarılır.

@{
    DefaultCommandPrefix = 'Example'
}

Ayrıca bakınız