Megosztás a következőn keresztül:


about_Module_Manifests

Rövid leírás

A moduljegyzékfájlok írásának beállításait és eljárásait ismerteti.

Hosszú leírás

A moduljegyzék egy kivonattáblát tartalmazó PowerShell-adatfájl (.psd1). A kivonattáblában szereplő kulcs-érték párok leírják a modul tartalmát és attribútumait, meghatározzák az előfeltételeket, és szabályozják az összetevők feldolgozását.

A jegyzékek nem szükségesek egy modul betöltéséhez, de közzé kell tenniük egy modult a PowerShell-galéria. A jegyzékek azt is lehetővé teszik, hogy elkülönítse a modul implementációját a betöltés módjától. A jegyzékekkel követelményeket, kompatibilitást, betöltési sorrendet és egyebeket határozhat meg.

Ha a jegyzékfájl beállításainak paramétereinek megadása nélkül használja New-ModuleManifest , az egy minimális jegyzékfájlt ír. Az alábbi kódrészlet ezt az alapértelmezett kimenetet jeleníti meg, a rövidség kedvéért a megjegyzésből és a térközből:

@{
# 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 = ''
    } # End of PSData hashtable
} # End of PrivateData hashtable
# HelpInfoURI = ''
# DefaultCommandPrefix = ''
}

A modul közzététele előtt érvényesítheti Test-ModuleManifest a moduljegyzéket. Test-ModuleManifest Hibát ad vissza, ha a jegyzék érvénytelen, vagy a modul nem importálható az aktuális munkamenetbe, mert a munkamenet nem felel meg a jegyzékben megadott követelményeknek.

Szkriptkód használata egy moduljegyzékben

A jegyzékfájl beállításaihoz rendelt értékek lehetnek a PowerShell által kiértékelt kifejezések. Így útvonalakat hozhat létre, és feltételesen hozzárendelhet értékeket változók alapján.

Modul importálásakor Import-Modulea jegyzék nyelvi módban lesz kiértékelve Restricted . Restricted mód korlátozza a használható parancsokat és változókat.

Engedélyezett parancsok

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

Engedélyezett változók

  • $PSScriptRoot
  • $PSEdition
  • $EnabledExperimentalFeatures
  • Bármilyen környezeti változó, például $ENV:TEMP

További információ: about_Language_Modes.

Jegyzékbeállítások

A következő szakaszok részletesen ismertetik a moduljegyzékben elérhető összes beállítást, és hogy hogyan használhatja őket. Ezek a beállítás szinopszisával kezdődnek, és egy mátrix követi őket, amely felsorolja a következőt:

  • Bemeneti típus: A jegyzékben ehhez a beállításhoz megadható objektumtípus.
  • Kötelező: Ha ez az Yesérték, a modul importálásához és a PowerShell-galéria való közzétételéhez egyaránt szükség van a beállításra. Ha mégis No, akkor egyikhez sem szükséges. Ha így vanPowerShell Gallery, csak a PowerShell-galéria való közzétételhez szükséges.
  • Érték, ha nincs megadva: A beállítás értéke importáláskor és nem explicit módon van beállítva.
  • Helyettesítő karaktereket fogad el: Azt határozza meg, hogy ez a beállítás tartalmazhat-e helyettesítő karaktert.

RootModule

Ez a beállítás a modul elsődleges vagy gyökérfájlját adja meg. A modul importálásakor a gyökérmodul-fájl által exportált tagok a hívó munkamenet-állapotába lesznek importálva.

Érték
Bemeneti típus System.String
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Az értéknek az alábbi lehetőségek egyikének kell lennie:

  • egy szkript (.ps1)
  • egy szkriptmodul (.psm1)
  • moduljegyzék (.psd1)
  • szerelvény (.dll)
  • parancsmagdefiníciós XML-fájl (.cdxml)
  • Windows PowerShell 5.1-munkafolyamat (.xaml)

Az elérési útnak a moduljegyzékhez képest kell lennie.

Ha egy moduljegyzékben nincs gyökérfájl a RootModule kulcsban, a jegyzékfájl lesz a modul elsődleges fájlja, a modul pedig jegyzékmodul lesz (ModuleType = Jegyzék). A RootModule definiálásakor a modul típusa a használt fájlkiterjesztésből lesz meghatározva:

  • egy .ps1 vagy .psm1 fájl teszi a modultípus szkript
  • a .psd1 fájl a moduljegyzék típust állítja be
  • a .dll fájl bináris típusúvá teszi a modult
  • a .cdxml fájl a modultípust CIM-ként állítja be
  • a .xaml fájl munkafolyamat típusúvá teszi a modult

Alapértelmezés szerint a RootModule összes modultagja exportálva lesz.

Tipp.

A modul betöltési sebessége eltér a bináris, a szkript és a CIM-modultípusok között. További információ: PowerShell-modulkészítési szempontok

A modul modultípusa például a Jegyzék. A modul csak a Beágyazottmodulok beállítással megadott modulokban definiált modulokat exportálhatja.

@{
    RootModule = ''
}

Feljegyzés

Ez a beállítás a moduljegyzékekben is megadható ModuleToProcess néven. Bár a beállítás neve érvényes, ajánlott inkább a RootModule-t használni.

ModuleVersion

Ez a beállítás a modul verzióját határozza meg. Ha egy modul több verziója is létezik egy rendszeren, a rendszer alapértelmezés szerint betölti a legújabb verziót a futtatáskor Import-Module.

Érték
Bemeneti típus System.String
Szükséges Igen
Érték, ha nincs megadva Egyik sem
Helyettesítő karakterek elfogadása Nem

A beállítás értékének a futtatáskor Import-Modulekonvertálhatónak System.Version kell lennie.

Ez a jegyzék például a modul verzióját '1.2.3'deklarálja .

@{
    ModuleVersion = '1.2.3'
}

Amikor importálja a modult, és megvizsgálja a Verzió tulajdonságot, vegye figyelembe, hogy ez egy System.Version objektum, és nem sztring:

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

Version

CompatibleP Standard kiadás ditions

Ez a beállítás határozza meg a modul kompatibilis P Standard kiadás dícióit.

Érték
Bemeneti típus System.String[]
Elfogadott értékek Desktop, Core
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Ha ennek a beállításnak az értéke, $nulla modul a munkamenet P Standard kiadás díciótól függetlenül importálható. Beállíthatja egy vagy több elfogadott értékre.

A P Standard kiadás dition szolgáltatással kapcsolatos információkért lásd:

Ha ez a beállítás meg van adva, a modul csak olyan munkamenetbe importálható, amelyben az $PSEdition automatikus változó értéke szerepel a beállításban.

Feljegyzés

Mivel az $PSEdition automatikus változó az 5.1-es verzióban lett bevezetve, a Windows PowerShell régebbi verziói nem tudják betölteni a CompatibleP Standard kiadás ditions beállítást használó modult.

Ezt a moduljegyzéket például bármelyik munkamenetben importálhatja:

@{
    # CompatiblePSEditions = @()
}

A megadott beállítással ez a modul csak olyan munkamenetekben importálható, ahol az $PSEdition automatikus változó értéke .Core

@{
    CompatiblePSEditions = @('Core')
}

GUID

Ez a beállítás egyedi azonosítót ad meg a modulhoz. A GUID az azonos nevű modulok megkülönböztetésére szolgál.

Érték
Bemeneti típus System.String
Szükséges Nem
Érték, ha nincs megadva 00000000-0000-0000-0000-000000000000
Helyettesítő karakterek elfogadása Nem

A beállítás értékének a futtatáskor Import-Modulekonvertálhatónak System.Guid kell lennie.

Figyelemfelhívás

Bár ez nem kötelező beállítás, a GUID jegyzékben való megadása nem jár előnyökkel, és a modulok névütközéséhez vezethet.

Létrehozhat egy új guidt, amelyet a jegyzékben használhat:

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

Ha a gépen egy másik modul is található ugyanazzal a névvel, a modul teljes neve megadásával importálhatja a kívánt modult:

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

Szerző

Ez a beállítás azonosítja a modul szerzőt.

Érték
Bemeneti típus System.String
Szükséges PowerShell-galéria
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Ez a jegyzék deklarálja, hogy a modul szerzője a Contoso fejlesztői élménycsapata.

@{
    Author = 'Contoso Developer Experience Team'
}

Cégnév

Ez a beállítás azonosítja a modult létrehozó vállalatot vagy szállítót.

Érték
Bemeneti típus System.String
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Ez a jegyzék deklarálja, hogy a modult a Contoso Ltd. hozta létre.

@{
    CompanyName = 'Contoso, Ltd.'
}

Ez a beállítás egy szerzői jogi nyilatkozatot ad meg a modulhoz.

Érték
Bemeneti típus System.String
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Ez a jegyzék egy szerzői jogi nyilatkozatot deklarál, amely 2022-ben fenntart minden jogot a Contoso Ltd. számára.

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

Leírás

Ez a beállítás magas szinten írja le a modult.

Érték
Bemeneti típus System.String
Szükséges PowerShell-galéria
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Ez a jegyzék rövid leírást tartalmaz. Hosszabb vagy többsoros leírást is írhat itt sztringgel.

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

PowerShellVersion

Ez a beállítás határozza meg a modulhoz szükséges PowerShell minimális verzióját.

Érték
Bemeneti típus System.String
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

A beállítás értékének a futtatáskor Import-Modulekonvertálhatónak System.Version kell lennie.

Ha ez a beállítás nincs beállítva, a PowerShell nem korlátozza a modul importálását az aktuális verzió alapján.

Ez a jegyzék például azt deklarálja, hogy a modul kompatibilis a PowerShell és a Windows PowerShell minden verziójával.

@{
    # PowerShellVersion = ''
}

A PowerShellVersion beállítása esetén 7.2a modul csak a PowerShell 7.2-ben vagy újabb verziójában importálható.

@{
    PowerShellVersion = '7.2'
}

PowerShellHostName

Ez a beállítás megadja a modulhoz szükséges PowerShell-gazdagépprogram nevét, például Windows PowerShell I Standard kiadás Gazdagép vagy ConsoleHost.

Érték
Bemeneti típus System.String
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Az utasítással $Host.Name megtalálhatja a gazdagép nevét egy munkamenethez. Láthatja például, hogy egy távoli munkamenet gazdagépe a ConsoleHost helyett a ServerRemoteHost:

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

Ez a modul bármely gazdagépre importálható.

@{
    # PowerShellHostName = ''
}

A PowerShellHostName beállítása esetén ServerRemoteHostcsak távoli PowerShell-munkamenetben importálhatja a modult.

@{
    PowerShellHostName = 'ServerRemoteHost'
}

PowerShellHostVersion

Ez a beállítás a modulhoz szükséges PowerShell-gazdagépprogram minimális verzióját határozza meg.

Érték
Bemeneti típus System.String
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

A beállítás értékének a futtatáskor Import-Modulekonvertálhatónak System.Version kell lennie.

Figyelemfelhívás

Bár ez a beállítás a PowerShellHostName beállítás nélkül is használható, növeli a váratlan viselkedés esélyét. Ezt a beállítást csak akkor használja, ha a PowerShellHostName beállítást is használja.

Ennek a jegyzéknek a modulja például importálható bármely, a ConsoleHostban futó PowerShell-munkamenetből, függetlenül a gazdagép verziójától.

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

A PowerShellHostVersion beállítása 5.1esetén a modult csak a ConsoleHostban futó PowerShell-munkamenetből importálhatja, ahol a gazdagép verziója 5.1 vagy újabb.

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

DotNetFrameworkVersion

Ez a beállítás határozza meg a Microsoft .NET-keretrendszer minimális verzióját, amelyet a modul igényel.

Érték
Bemeneti típus System.String
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Feljegyzés

Ez a beállítás csak a PowerShell Desktop kiadásra érvényes, például a Windows PowerShell 5.1-hez, és csak a 4.5-nél kisebb .NET-keretrendszer verziókra vonatkozik. Ez a követelmény nincs hatással a PowerShell újabb verzióira vagy a .NET-keretrendszer.

A beállítás értékének a futtatáskor Import-Modulekonvertálhatónak System.Version kell lennie.

Ez a jegyzék például azt deklarálja, hogy modulja importálható bármely PowerShell- vagy Windows PowerShell-munkamenetbe, függetlenül a Microsoft .NET-keretrendszer verziójától.

@{
    # DotNetFrameworkVersion = ''
}

A DotNetFrameworkVersion beállítása 4.0esetén ezt a modult a Windows PowerShell bármely munkamenetében importálhatja, ahol a Microsoft .NET-keretrendszer legújabb elérhető verziója legalább 4.0. Bármely PowerShell-munkamenetben importálhatja is.

@{
    DotNetFrameworkVersion = '4.0'
}

CLRVersion

Ez a beállítás határozza meg a Microsoft .NET-keretrendszer common language runtime (CLR) minimális verzióját, amelyet a modul igényel.

Érték
Bemeneti típus System.String
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Feljegyzés

Ez a beállítás csak a PowerShell Desktop kiadásra érvényes, például a Windows PowerShell 5.1-hez, és csak a 4.5-nél kisebb .NET-keretrendszer verziókra vonatkozik. Ez a követelmény nincs hatással a PowerShell újabb verzióira vagy a .NET-keretrendszer.

A beállítás értékének a futtatáskor Import-Modulekonvertálhatónak System.Version kell lennie.

Ez a jegyzék például azt deklarálja, hogy modulja importálható bármely PowerShell- vagy Windows PowerShell-munkamenetbe, függetlenül a Microsoft .NET-keretrendszer CLR-verziójának verziójától.

@{
    # CLRVersion = ''
}

A CLRVersion beállítása 4.0esetén ezt a modult a Windows PowerShell bármely munkamenetében importálhatja, ahol a CLR legújabb elérhető verziója legalább 4.0. Bármely PowerShell-munkamenetben importálhatja is.

@{
    CLRVersion = '4.0'
}

ProcessorArchitecture

Ez a beállítás megadja a modul által igényelt processzorarchitektúrát.

Érték
Bemeneti típus System.String
Elfogadott értékek None, MSIL, X86, IA64Amd64Arm
Szükséges Nem
Érték, ha nincs megadva None
Helyettesítő karakterek elfogadása Nem

A beállítás értékének a futtatáskor Import-Modulekonvertálhatónak System.Reflection.ProcessorArchitecture kell lennie.

Ez a jegyzék például azt deklarálja, hogy modulja bármely munkamenetben importálható, függetlenül a rendszer processzorarchitektúráitól.

@{
    # ProcessorArchitecture = ''
}

A ProcessorArchitecture beállításával Amd64ezt a modult csak egy megfelelő architektúrával rendelkező gépen futó munkamenetben importálhatja.

@{
    ProcessorArchitecture = 'Amd64'
}

Kötelezőmodulok

Ez a beállítás olyan modulokat határoz meg, amelyeknek globális munkamenet-állapotban kell lenniük. Ha a szükséges modulok nincsenek globális munkamenet-állapotban, a PowerShell importálja őket. Ha a szükséges modulok nem érhetők el, a Import-Module parancs meghiúsul.

Érték
Bemeneti típus System.String[], System.Collections.Hashtable[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

A beállítás bejegyzései lehetnek modulnevek, teljes modulspecifikációk vagy egy modulfájl elérési útja.

Ha az érték egy elérési út, az elérési út teljes mértékben minősített vagy relatív lehet.

Ha az érték egy név vagy egy modul specifikációja, a PowerShell megkeresi a PSModulePath-t a megadott modulban.

A modulspecifikációk olyan kivonattáblák, amelyek a következő kulcsokat tartalmazzák.

  • ModuleName - Kötelező. Megadja a modul nevét.
  • GUID - Választható. A modul GUID azonosítóját adja meg.
  • Emellett az alábbi három kulcs közül legalább egyet meg kell adnia. A RequiredVersion kulcs nem használható a kulcsokkal vagy MaximumVersion kulcsokkalModuleVersion. A modul elfogadható verziótartományát a kulcsok és MaximumVersion a ModuleVersion kulcsok együttes megadásával határozhatja meg.
    • ModuleVersion – A modul minimálisan elfogadható verzióját adja meg.
    • RequiredVersion – A modul pontos, kötelező verzióját adja meg.
    • MaximumVersion – Meghatározza a modul maximálisan elfogadható verzióját.

Feljegyzés

RequiredVersion a Windows PowerShell 5.0-s verzióban lett hozzáadva. MaximumVersion a Windows PowerShell 5.1-ben lett hozzáadva.

Ez a jegyzék például azt deklarálja, hogy a modul nem igényel más modulokat a működéséhez.

@{
    # RequiredModules = @()
}

Ez a jegyzék deklarálja, hogy a PSReadLine modulra van szükség. Amikor ezen a jegyzéken fut Import-Module , a PowerShell importálja a PSReadLine legújabb verzióját, amely elérhető a munkamenethez. Ha nincs elérhető verzió, az importálás hibát ad vissza.

@{
    RequiredModules = @(
        'PSReadLine'
    )
}

Tipp.

A PowerShell 2.0-ban Import-Module nem importálja automatikusan a szükséges modulokat. Csak azt ellenőrzi, hogy a szükséges modulok globális munkamenet-állapotban vannak-e.

Ez a jegyzék deklarálja, hogy a PSReadLine-modul saját modulmappájában található verziójára van szükség. Amikor ezen a jegyzéken fut Import-Module , a PowerShell a megadott elérési útról importálja a szállítói PSReadLine-t.

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

Ez a jegyzék deklarálja, hogy kifejezetten a PSReadLine modul 2.0.0-s verzióját igényli. Ha ezen a jegyzéken fut Import-Module , a PowerShell importálja a PSReadLine 2.0.0-s verzióját, ha elérhető. Ha nem érhető el, Import-Module hibát ad vissza.

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

Ez a jegyzék deklarálja, hogy a PSReadLine modult a 2.0.0-s vagy újabb verzióban kell importálni.

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

Ez a jegyzék deklarálja, hogy a PSReadLine modult a 2.0.0-s vagy újabb verzióban kell importálni.

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

Ez a jegyzék deklarálja, hogy a PSDesiredStateConfiguration modult 2.0.0-s vagy annál nagyobb, de legfeljebb 2.99.99-es verzióban kell importálni.

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

RequiredAssemblies

Ez a beállítás a modul által igényelt szerelvényfájlokat (.dll) határozza meg. A PowerShell betölti a megadott szerelvényeket a típusok vagy formátumok frissítése, a beágyazott modulok importálása vagy a RootModule kulcs értékében megadott modulfájl importálása előtt.

Érték
Bemeneti típus System.String[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

A beállítás bejegyzései lehetnek egy szerelvény fájlneve vagy az elérési út. Sorolja fel az összes szükséges szerelvényt, még akkor is, ha bináris modulként is szerepelnek a Beágyazott modulok beállításban.

Ehhez a jegyzékfájlhoz a szerelvény szükséges example.dll . Mielőtt betöltené a jegyzékfájlban megadott formázási vagy típusfájlokat, a PowerShell betöltődik example.dll a Assemblies moduljegyzékével azonos könyvtárban található mappából.

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

ScriptsToProcess

Ez a beállítás olyan szkriptfájlokat (.ps1) határoz meg, amelyek a modul importálásakor a hívó munkamenet-állapotában futnak. Ezekkel a szkriptekkel előkészíthet egy környezetet, akárcsak egy bejelentkezési szkriptet.

Érték
Bemeneti típus System.String[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

A modul munkamenet-állapotában futó szkriptek megadásához használja a Beágyazottmodules kulcsot.

A jegyzék importálásakor a PowerShell az aktuális munkamenetben futtatja a Initialize.ps1 fájlt.

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

Ha például tájékoztató üzeneteket ír, Initialize.ps1 és beállítja a változót $ExampleState :

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

Amikor importálja a modult, a szkript lefut, megírja ezeket az üzeneteket, és beállítja $ExampleState őket a munkamenetben.

$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

Ez a beállítás a modul importálásakor futtatott típusfájlokat (.ps1xml) adja meg.

Érték
Bemeneti típus System.String[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

A modul importálásakor a PowerShell a Update-TypeData megadott fájlokkal futtatja a parancsmagot. Mivel a típusfájlok hatóköre nem terjed ki, a munkamenet összes munkamenetállapotára hatással vannak.

További információ a típusfájlokról: about_Types.ps1xml

Ha például importálja ezt a jegyzékfájlt, a PowerShell betölti a Example.ps1xml fájlban megadott típusokat a Types moduljegyzékvel azonos könyvtárban található mappából.

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

FormatsToProcess

Ez a beállítás a modul importálásakor futtatott formázási fájlokat (.ps1xml) határozza meg.

Érték
Bemeneti típus System.String[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Modul importálásakor a PowerShell a Update-FormatData megadott fájlokkal futtatja a parancsmagot. Mivel a formázási fájlok nincsenek hatókörben, a munkamenet összes munkamenetállapotára hatással vannak.

További információ a típusfájlokról: about_Format.ps1xml

Ha például importálja ezt a modult, a PowerShell betölti a Example.ps1xml fájlban megadott formátumokat a Formats moduljegyzékvel azonos könyvtárban található mappából.

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

Beágyazottmodulok

Ez a beállítás a modul munkamenet-állapotába importált szkriptmodulokat (.psm1) és bináris modulokat (.dll) határozza meg. Szkriptfájlokat (.ps1) is megadhat. A beállításban szereplő fájlok a lista sorrendjében futnak.

Érték
Bemeneti típus System.String[], System.Collections.Hashtable[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

A beállítás bejegyzései lehetnek a modul neve, a modul teljes specifikációja, vagy egy modul vagy egy szkriptfájl elérési útja.

Ha az érték egy elérési út, az elérési út teljes mértékben minősített vagy relatív lehet.

Ha az érték egy modul neve vagy specifikációja, a PowerShell megkeresi a PSModulePath-t a megadott modulban.

A modulspecifikációk olyan kivonattáblák, amelyek a következő kulcsokat tartalmazzák.

  • ModuleName - Kötelező. Megadja a modul nevét.
  • GUID - Választható. A modul GUID azonosítóját adja meg.
  • Emellett az alábbi három kulcs közül legalább egyet meg kell adnia. A RequiredVersion kulcs nem használható a kulcsokkal vagy MaximumVersion kulcsokkalModuleVersion. A modul elfogadható verziótartományát a kulcsok és MaximumVersion a ModuleVersion kulcsok együttes megadásával határozhatja meg.
    • ModuleVersion – A modul minimálisan elfogadható verzióját adja meg.
    • RequiredVersion – A modul pontos, kötelező verzióját adja meg.
    • MaximumVersion – Meghatározza a modul maximálisan elfogadható verzióját.

Feljegyzés

RequiredVersion a Windows PowerShell 5.0-s verzióban lett hozzáadva. MaximumVersion a Windows PowerShell 5.1-ben lett hozzáadva.

A beágyazott modulból exportálandó elemeket a beágyazott modulnak a parancsmag használatával Export-ModuleMember kell exportálnia, vagy szerepelnie kell az exportálási tulajdonságok egyikében:

  • FunctionsToExport
  • ParancsmagokToExport
  • VariablesToExport
  • AliasesToExport

A modul munkamenet-állapotában lévő beágyazott modulok elérhetők a gyökérmodul számára, de a hívó munkamenetállapotában lévő parancs nem adja vissza Get-Module őket.

Az ebben a beállításban felsorolt szkriptek (.ps1) nem a hívó munkamenet-állapotában, hanem a modul munkamenet-állapotában futnak. Ha szkriptet szeretne futtatni a hívó munkamenet-állapotában, adja meg a szkriptfájl nevét a ScriptsToProcess beállításban.

Ha például importálja ezt a jegyzékfájlt, a Helpers.psm1 modul betöltődik a gyökérmodul munkamenet-állapotába. A beágyazott modulban deklarált parancsmagokat a rendszer exportálja, kivéve, ha más módon korlátozva van.

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

FunctionsToExport

Ez a beállítás határozza meg a modul által exportált függvényeket. Ezzel a beállítással korlátozhatja a modul által exportált függvényeket. Eltávolíthat függvényeket az exportált függvények listájából, de nem tud függvényeket hozzáadni a listához.

Érték
Bemeneti típus System.String[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Igen

Ebben a beállításban helyettesítő karakterekkel adhatja meg a bejegyzéseket. A program exportálja az exportált függvények listájában szereplő összes egyező függvényt.

Tipp.

A teljesítmény és a felderíthetőség érdekében mindig explicit módon kell felsorolnia azokat a függvényeket, amelyeket a modul exportálni szeretne ebben a beállításban helyettesítő karakterek használata nélkül.

Ha például egy olyan modult importál, amelyben a beállítás megjegyzést fűz, a rendszer exportálja a gyökérmodul összes függvényét és a beágyazott modulokat.

@{
    # FunctionsToExport = @()
}

Ez a jegyzék funkcionálisan megegyezik a beállítás egyáltalán nem megadott értékével.

@{
    FunctionsToExport = '*'
}

Ha a FunctionsToExport üres tömbként van beállítva, a modul importálásakor nem érhető el a gyökérmodul vagy a beágyazott modulok exportálása.

@{
    FunctionsToExport = @()
}

Feljegyzés

Ha a parancs használatával hozza létre a New-ModuleManifest moduljegyzéket, és nem adja meg a FunctionsToExport paramétert, a létrehozott jegyzékfájl üres tömbként van megadva. Ha nem szerkessze a jegyzékfájlt, a modul egyetlen függvényét sem exportálja a rendszer.

Ha a FunctionsToExport csak a Get-Example függvényt tartalmazza, a modul importálásakor csak a Get-Example függvény lesz elérhető, még akkor is, ha a gyökérmodul vagy bármely beágyazott modul exportált más függvényeket.

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

A FunctionsToExport helyettesítő karaktersorozattal van beállítva, amikor importálja ezt a modult, minden olyan függvény elérhetővé válik, amelynek a neve Example elérhetővé válik, még akkor is, ha a gyökérmodul vagy a beágyazott modulok más függvényeket exportáltak modultagként.

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

ParancsmagokToExport

Ez a beállítás határozza meg a modul által exportált parancsmagokat. Ezzel a beállítással korlátozhatja a modul által exportált parancsmagokat. Eltávolíthatja a parancsmagokat az exportált modultagok listájából, de nem tud parancsmagokat hozzáadni a listához.

Érték
Bemeneti típus System.String[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Igen

Ebben a beállításban helyettesítő karakterekkel adhatja meg a bejegyzéseket. A program exportálja az exportált parancsmagok listájában szereplő összes egyező parancsmagot.

Tipp.

A teljesítmény és a felderíthetőség érdekében mindig explicit módon kell felsorolnia azokat a parancsmagokat, amelyeket ebben a beállításban szeretne exportálni helyettesítő karakterek használata nélkül.

Ha például ezzel a beállítással rendelkező modult importál, a rendszer exportálja a gyökérmodul összes parancsmagát és a beágyazott modulokat.

@{
    # CmdletsToExport = @()
}

Ez a jegyzék funkcionálisan megegyezik a beállítás egyáltalán nem megadott értékével.

@{
    CmdletsToExport = '*'
}

Ha a CmdletsToExport üres tömbként van beállítva, a modul importálásakor nem érhetők el parancsmagok a gyökérmodulhoz vagy a beágyazott modulok exportálásához.

@{
    CmdletsToExport = @()
}

Feljegyzés

Ha a parancsmal hozza létre a New-ModuleManifest moduljegyzéket, és nem adja meg a CmdletsToExport paramétert, a létrehozott jegyzékben ez a beállítás üres tömbként van megadva. Ha nem szerkessze a jegyzékfájlt, a modulból nem exportálja a rendszer a parancsmagokat.

Ha a CmdletsToExport beállítás csak a Get-Example parancsmagot tartalmazza, a modul importálásakor csak a Get-Example parancsmag lesz elérhető, még akkor is, ha a gyökérmodul vagy bármely beágyazott modul exportált más parancsmagokat.

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

Ha a CmdletsToExport készlet helyettesítő karaktersorozatot tartalmaz, a modul importálásakor minden olyan parancsmag elérhetővé válik, amelynek a neve Example elérhetővé válik, még akkor is, ha a gyökérmodul vagy bármely beágyazott modul más parancsmagokat exportált modultagként.

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

VariablesToExport

Ez a beállítás határozza meg a modul által exportált változókat. Ezzel a beállítással korlátozhatja a modul által exportált változókat. Eltávolíthatja a változókat az exportált modultagok listájából, de nem tud változókat hozzáadni a listához.

Érték
Bemeneti típus System.String[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Igen

Ebben a beállításban helyettesítő karakterekkel adhatja meg a bejegyzéseket. A program exportálja az exportált modultagok listájában szereplő összes egyező változót.

Tipp.

A teljesítmény és a felderíthetőség érdekében mindig explicit módon kell felsorolnia azokat a változókat, amelyeket a modul exportálni szeretne ebben a beállításban helyettesítő karakterek használata nélkül.

Ha például ezzel a beállítással rendelkező modult importál, a rendszer exportálja a gyökérmodulban lévő összes változót és a beágyazott modulokat.

@{
    # VariablesToExport = @()
}

Ez a jegyzék funkcionálisan megegyezik a beállítás egyáltalán nem megadott értékével.

@{
    VariablesToExport = '*'
}

Feljegyzés

Ha a paranccsal hozza létre a New-ModuleManifest moduljegyzéket, és nem adja meg a VariablesToExport paramétert, a létrehozott jegyzékben ez a beállítás van '*'megadva. Ha nem szerkessze a jegyzékfájlt, a modul összes változója exportálva lesz.

Ha a VariablesToExport üres tömbként van beállítva, a modul importálásakor nem érhetők el a gyökérmodul vagy a beágyazott modulok exportálása.

@{
    VariablesToExport = @()
}

Ha a VáltozókToExport beállítása csak a SomeExample változót tartalmazza, a modul importálásakor csak a $SomeExample változó lesz elérhető, még akkor is, ha a gyökérmodul vagy bármely beágyazott modul exportált más változókat.

@{
    VariablesToExport = @(
        'SomeExample'
    )
}

A VariablesToExport helyettesítő karaktersorozattal van beállítva, amikor importálja ezt a modult, minden olyan változó elérhetővé válik, amelynek a neve Example elérhetővé válik, még akkor is, ha a gyökérmodul vagy a beágyazott modulok más változókat exportáltak modultagként.

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

DscResourcesToExport

Ez a beállítás határozza meg a modul által exportált DSC-erőforrásokat. Ezzel a beállítással korlátozhatja a modul által exportált osztályalapú DSC-erőforrásokat. Eltávolíthatja a DSC-erőforrásokat az exportált modultagok listájából, de nem tud DSC-erőforrásokat hozzáadni a listához.

Érték
Bemeneti típus System.String[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Igen

Ebben a beállításban helyettesítő karakterekkel adhatja meg a bejegyzéseket. A modul összes egyező osztályalapú DSC-erőforrása exportálva lesz.

Tipp.

A felderíthetőség érdekében mindig explicit módon kell felsorolnia a modul által exportált összes DSC-erőforrást.

A DSC-erőforrások készítésével és használatával kapcsolatos további információkért tekintse meg a DSC dokumentációját.

Ez a jegyzék exportálja a gyökérmodulban és a beágyazott modulokban definiált osztályalapú és MOF-alapú DSC-erőforrásokat.

@{
    # DscResourcesToExport = @()
}

Ez a jegyzékfájl exportálja a gyökérmodulban definiált MOF-alapú DSC-erőforrásokat és a beágyazott modulokat, de csak egy osztályalapú DSC-erőforrást ExampleClassResource.

@{
    DscResourcesToExport = @(
        'ExampleClassResource'
    )
}

Ez a jegyzék exportálja az összes DSC-erőforrást. Még akkor is exportálja a modul, ha az MOF-alapú erőforrás nem szerepel a listában.

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

Modullista

Ez a beállítás az ebben a modulban szereplő modulok információs leltárlistája. Ez a lista nem befolyásolja a modul viselkedését.

Érték
Bemeneti típus System.String[], System.Collections.Hashtable[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

A beállítás bejegyzései lehetnek a modul neve, a modul teljes specifikációja, vagy egy modul vagy egy szkriptfájl elérési útja.

Ha az érték egy elérési út, az elérési út teljes mértékben minősített vagy relatív lehet.

Ha az érték egy modul neve vagy specifikációja, a PowerShell megkeresi a PSModulePath-t a megadott modulban.

A modulspecifikációk olyan kivonattáblák, amelyek a következő kulcsokat tartalmazzák.

  • ModuleName - Kötelező. Megadja a modul nevét.
  • GUID - Választható. A modul GUID azonosítóját adja meg.
  • Emellett az alábbi három kulcs közül legalább egyet meg kell adnia. A RequiredVersion kulcs nem használható a kulcsokkal vagy MaximumVersion kulcsokkalModuleVersion. A modul elfogadható verziótartományát a kulcsok és MaximumVersion a ModuleVersion kulcsok együttes megadásával határozhatja meg.
    • ModuleVersion – A modul minimálisan elfogadható verzióját adja meg.
    • RequiredVersion – A modul pontos, kötelező verzióját adja meg.
    • MaximumVersion – Meghatározza a modul maximálisan elfogadható verzióját.

Feljegyzés

RequiredVersion a Windows PowerShell 5.0-s verzióban lett hozzáadva. MaximumVersion a Windows PowerShell 5.1-ben lett hozzáadva.

Ez a jegyzék nem tartalmazza a benne található modulok információs listáját. Lehet, hogy modulokkal rendelkezik, vagy nem. Annak ellenére, hogy ez a beállítás nincs megadva, a RootModule, a ScriptsToProcess vagy a NestedModules beállításaiban felsorolt modulok továbbra is megfelelően működnek.

@{
    # ModuleList = @()
}

Ez a jegyzék deklarálja, hogy csak a benne található modulok, Example.psm1 valamint az almodulok First.psm1 és Second.psm1 a Submodules mappában találhatók.

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

FileList

Ez a beállítás a modulban szereplő fájlok információs leltárlistája. Ez a lista nem befolyásolja a modul viselkedését.

Érték
Bemeneti típus System.String[]
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Igen

A beállítás bejegyzéseinek a moduljegyzéket tartalmazó mappából származó fájl relatív elérési útjának kell lenniük.

Amikor egy felhasználó ezzel a beállítással hív Get-Module meg egy jegyzékfájlt, a FileList tulajdonság tartalmazza a fájlok teljes elérési útját, és összekapcsolja a modul elérési útját az egyes bejegyzések relatív elérési útjával.

Ez a jegyzék nem tartalmazza a fájlok listáját.

@{
    # FileList = @()
}

Ez a jegyzék deklarálja, hogy a beállításban csak azokat a fájlokat sorolja fel, amelyeket tartalmaz.

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

PrivateData

Ez a beállítás a gyökérmodul hatókörében lévő parancsok vagy függvények számára elérhető adatkivonat-táblázatot határozza meg.

Érték
Bemeneti típus System.Collections.Hashtable
Szükséges PowerShell-galéria, Crescendo
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Amikor crescendo-jegyzékfájlt exportál egy új modul létrehozásához, Export-CrescendoModule két kulcsot ad hozzá a PrivateData-hoz

  • CrescendoGenerated – időbélyeg a modul exportálásakor
  • CrescendoVersion – a Modul exportálásához használt Crescendo-verzió

Saját kulcsokat is hozzáadhat a nyomon követni kívánt metaadatok tárolásához. A beállításhoz hozzáadott kulcsok a gyökérmodul $MyInvocation.MyCommand.Module.PrivateDatafüggvényei és parancsmagjai számára érhetők el. A kivonattábla nem érhető el magában a modul hatókörében, csak a modulban definiált parancsmagokban.

Ez a jegyzék például a PrivateData PublishedDate kulcsáthatározza meg.

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

A modul parancsmagjai hozzáférhetnek ehhez az értékhez a $MyInvocation változóval.

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

A modul importálása után a függvény a PrivateData értékével határozza meg, hogy mikor lett közzétéve a modul.

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

A PSData gyermektulajdonság egy olyan kivonattáblát határoz meg, amely támogatja az adott bővítményforgatókönyveket.

Érték
Bemeneti típus System.Collections.Hashtable
Szükséges PowerShell-galéria, Kísérleti funkciók, Crescendo-modulok
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

A PSData gyermektulajdonság a következő esetekben használatos:

  • PowerShell-galéria – Amikor egy moduljegyzéket a parancsmaggal New-ModuleManifest hoz létre, a PSData-kivonatolót előre feltölti helyőrző kulcsokkal, amelyekre a modul PowerShell-galéria való közzétételekor szükség van. A moduljegyzékekről és a PowerShell-galéria való közzétételről további információt a PowerShell-galéria felhasználói felületét érintő csomagjegyzék-értékekben talál.
  • Kísérleti funkciók – A kísérleti funkciók metaadatai a PSData ExperimentalFeatures tulajdonságában maradnak. A ExperimentalFeatures tulajdonság a funkció nevét és leírását tartalmazó kivonattáblák tömbje. További információ: A modulok kísérleti funkcióinak deklarálása.
  • Crescendo-modulok – Amikor egy Crescendo-jegyzékfájlt exportál egy új modul létrehozásához, Export-CrescendoModule hozzáadja az értéket CrescendoBuilt a PSData.Tags tulajdonsághoz. Ez a címke a Crescendo használatával létrehozott PowerShell-galéria található modulok megkeresésére használható. További információ: Export-CrescendoModule.

HelpInfoURI

Ez a beállítás a modul HelpInfo XML-fájljának internetes címét adja meg.

Érték
Bemeneti típus System.String
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

Ennek a beállításnak az értéke egy egységes erőforrás-azonosító (URI) kell, hogy legyen, amely http-vel vagy https-lel kezdődik.

A HelpInfo XML-fájl támogatja a PowerShell 3.0-ban bevezetett Frissíthető súgó funkciót. Információkat tartalmaz a modul letölthető súgófájljainak helyéről, valamint az egyes támogatott területi beállítások legújabb súgófájljainak verziószámairól.

Az frissíthető súgóval kapcsolatos információkért lásd: about_Updatable_Help. A HelpInfo XML-fájlról további információt az Frissíthető súgó támogatása című témakörben talál.

Ez a modul például támogatja az frissíthető súgót.

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

DefaultCommandPrefix

Ez a beállítás egy olyan előtagot határoz meg, amely a modul összes parancsának főnevére van előtagként a munkamenetbe való importáláskor. Az előtagok segítenek megakadályozni a parancsnevek ütközését egy felhasználó munkamenetében.

Érték
Bemeneti típus System.String
Szükséges Nem
Érték, ha nincs megadva $null
Helyettesítő karakterek elfogadása Nem

A modulfelhasználók felülbírálhatják ezt az előtagot a Import-Module parancsmag előtagparaméterének megadásával.

Ez a beállítás a PowerShell 3.0-ban lett bevezetve.

A jegyzékfájl importálásakor az ebből a modulból importált parancsmagok a nevükben előre fel lettek Example függesztve a főnévre. Például Get-Item a következőként Get-ExampleItemvan importálva: .

@{
    DefaultCommandPrefix = 'Example'
}

Lásd még