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-Module
a 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égisNo
, 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-Module
konvertá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, $null
a 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:
- about_PowerShell_Editions
- Kompatibilis PowerShell-kiadásokkal rendelkező modulok.
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-Module
konvertá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.'
}
Szerzői jogok
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-Module
konvertá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.2
a 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 ServerRemoteHost
csak 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-Module
konvertá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.1
eseté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-Module
konvertá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.0
eseté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-Module
konvertá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.0
eseté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 , IA64 Amd64 Arm |
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-Module
konvertá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 Amd64
ezt 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 vagyMaximumVersion
kulcsokkalModuleVersion
. A modul elfogadható verziótartományát a kulcsok ésMaximumVersion
aModuleVersion
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 vagyMaximumVersion
kulcsokkalModuleVersion
. A modul elfogadható verziótartományát a kulcsok ésMaximumVersion
aModuleVersion
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 vagyMaximumVersion
kulcsokkalModuleVersion
. A modul elfogadható verziótartományát a kulcsok ésMaximumVersion
aModuleVersion
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.PrivateData
fü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éketCrescendoBuilt
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-ExampleItem
van importálva: .
@{
DefaultCommandPrefix = 'Example'
}
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: