Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Krátký popis
Popisuje nastavení a postupy pro zápis souborů manifestu modulu.
Dlouhý popis
Manifest modulu je datový soubor PowerShellu (.psd1) obsahující tabulku hash.
Páry klíč-hodnota v tabulce hash popisují obsah a atributy modulu, definují požadavky a řídí způsob zpracování komponent.
Manifesty nejsou nutné k načtení modulu, ale vyžadují se k publikování modulu do PowerShell Gallerysouboru . Manifesty také umožňují oddělit implementaci modulu od toho, jak se načte. Pomocí manifestu můžete definovat požadavky, kompatibilitu, pořadí načítání a další.
Při použití New-ModuleManifest bez zadání parametrů pro nastavení manifestu zapíše minimální soubor manifestu. Následující fragment kódu ukazuje tento výchozí výstup, vystřižený komentář a mezery pro stručnost:
@{
# 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 = ''
}
Před publikováním modulu můžete pomocí Test-ModuleManifest ověřit manifest modulu.
Test-ModuleManifest vrátí chybu, pokud je manifest neplatný nebo modul nejde importovat do aktuální relace, protože relace nesplňuje požadavky nastavené v manifestu.
Použití kódu skriptu v manifestu modulu
Hodnoty přiřazené nastavení v souboru manifestu můžou být výrazy, které powershell vyhodnocuje. To umožňuje vytvářet cesty a podmíněně přiřazovat hodnoty na základě proměnných.
Při importu modulu pomocí Import-Modulese manifest vyhodnotí v Restricted jazykovém režimu.
Restricted režim omezuje příkazy a proměnné, které je možné použít.
Povolené příkazy
Import-LocalizedDataConvertFrom-StringDataWrite-HostOut-HostJoin-Path
Povolené proměnné
$PSScriptRoot$PSEdition$EnabledExperimentalFeatures- Všechny proměnné prostředí, například
$Env:TEMP
Další informace naleznete v tématu about_Language_Modes.
Nastavení manifestu
Následující části podrobně uvádějí všechna dostupná nastavení v manifestu modulu a jejich použití. Začínají synopzí nastavení a následují matice se seznamem:
- Typ vstupu: Typ objektu, který můžete zadat pro toto nastavení v manifestu.
-
Povinné: Pokud je tato hodnota Ano, je nastavení nutné k importu modulu i k jeho publikování do PowerShell Gallerysouboru . Pokud je "Ne", vyžaduje se to pro žádné. Je-li to
PowerShell Gallery, je vyžadován pouze pro publikování do souboru PowerShell Gallery. - Hodnota, pokud není nastavena: Hodnota, kterou má toto nastavení při importu a není explicitně nastaveno.
- přijímá zástupné volby: Určuje, jestli toto nastavení může mít hodnotu se zástupným znakem nebo ne.
RootModule
Toto nastavení určuje primární nebo kořenový soubor modulu. Při importu modulu se členové exportované kořenovým souborem modulu importují do stavu relace volajícího.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Hodnota musí být cesta k jedné z těchto věcí:
- skript (
.ps1) - modul skriptu (
.psm1) - manifest modulu (
.psd1) - sestavení (
.dll) - soubor XML definice rutiny (
.cdxml) - a Windows PowerShell 5.1 Workflow (
.xaml)
Cesta by měla být relativní vzhledem k manifestu modulu.
Pokud manifest modulu nemá v klíči RootMod ule žádný kořenový soubor, stane se manifest primárním souborem modulu a modul se stane modulem manifestu (ModuleType = Manifest). Pokud je definován RootModule, typ modulu se určuje z použité přípony souboru:
- soubor
.ps1nebo.psm1vytvoří typ modulu Script - soubor
.psd1vytvoří typ modulu Manifest - soubor
.dllvytvoří typ modulu Binary - soubor
.cdxmlvytvoří typ modulu CIM - soubor
.xamlvytvoří typ modulu pracovního postupu
Ve výchozím nastavení se exportují všechny členy modulu v RootModule.
Spropitné
Rychlost načítání modulů se liší od binárních, skriptůa CIM typů modulů. Další informace najdete v tématu aspekty vytváření modulů PowerShellu
Například ModuleType tohoto modulu je manifestu. Jedinými členy modulu, které tento modul může exportovat, jsou ty, které jsou definovány v modulech zadaných pomocí nastavení NestedModules.
@{
RootModule = ''
}
Poznámka
Toto nastavení lze také zadat v manifestech modulu jako ModuleToProcess. I když je tento název pro toto nastavení platný, doporučuje se místo toho použít RootModule.
ModuleVersion
Toto nastavení určuje verzi modulu. Pokud v systému existuje více verzí modulu, při spuštění Import-Modulese ve výchozím nastavení načte nejnovější verze.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ano |
| Hodnota, pokud nenasadíte | Žádný |
| přijímá zástupné | Ne |
Hodnota tohoto nastavení musí být při spuštění System.Versionkonvertibilní na Import-Module .
Tento manifest například deklaruje verzi modulu jako '1.2.3'.
@{
ModuleVersion = '1.2.3'
}
Při importu modulu a kontrole verze vlastnost, všimněte si, že se jedná o objekt System.Version a nikoli řetězec:
$ExampleModule = Import-Module example.psd1
$ExampleModule.Version
$ExampleModule.Version.GetType().Name
Major Minor Build Revision
----- ----- ----- --------
1 2 3 -1
Version
Kompatibilní sadyPSEditions
Toto nastavení určuje kompatibilní psEditions modulu.
| Hodnota | |
|---|---|
| vstupní typ | System.String[] |
| akceptované hodnoty |
Desktop, Core |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Pokud je hodnota tohoto nastavení $null, modul lze importovat bez ohledu na psEdition relace. Můžete ho nastavit na jednu nebo více přijatých hodnot.
Informace o PSEdition najdete tady:
Pokud je toto nastavení definováno, modul lze importovat pouze do relace, ve které je do nastavení zahrnuta hodnota $PSEdition automatické proměnné.
Poznámka
Vzhledem k tomu, že $PSEdition automatická proměnná byla zavedena ve verzi 5.1, starší verze Windows PowerShellu nemůžou načíst modul, který používá nastavení CompatiblePSEditions.
Manifest tohoto modulu můžete například importovat v libovolné relaci:
@{
# CompatiblePSEditions = @()
}
Při zadaném nastavení je možné tento modul importovat pouze v relacích, ve kterých je hodnota $PSEdition automatické proměnné Core.
@{
CompatiblePSEditions = @('Core')
}
GUID
Toto nastavení určuje jedinečný identifikátor modulu. Identifikátor GUID se používá k rozlišení modulů se stejným názvem.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ne |
| Hodnota, pokud nenasadíte | 00000000-0000-0000-0000-000000000000 |
| přijímá zástupné | Ne |
Hodnota tohoto nastavení musí být při spuštění System.Guidkonvertibilní na Import-Module .
Opatrnost
I když se nejedná o požadované nastavení, nezadávejte GUID v manifestu žádné výhody a může vést ke kolizím názvů modulů.
Můžete vytvořit nový identifikátor GUID, který se použije v manifestu:
New-Guid | Select-Object -ExpandProperty Guid
8456b025-2fa5-4034-ae47-e6305f3917ca
@{
GUID = '8456b025-2fa5-4034-ae47-e6305f3917ca'
}
Pokud na počítači se stejným názvem existuje jiný modul, můžete požadovaný modul naimportovat zadáním plně kvalifikovaného názvu modulu:
Import-Module -FullyQualifiedName @{
ModuleName = 'Example'
GUID = '8456b025-2fa5-4034-ae47-e6305f3917ca'
ModuleVersion = '1.0.0'
}
Author
Toto nastavení identifikuje autora modulu.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | PowerShell Gallery |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Tento manifest deklaruje, že autorem modulu je tým prostředí pro vývojáře společnosti Contoso.
@{
Author = 'Contoso Developer Experience Team'
}
Název společnosti
Toto nastavení identifikuje společnost nebo dodavatele, kteří modul vytvořili.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Tento manifest deklaruje, že modul byl vytvořen společností Contoso, Ltd.
@{
CompanyName = 'Contoso, Ltd.'
}
Copyright
Toto nastavení určuje prohlášení o autorských právech pro modul.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Tento manifest deklaruje prohlášení o autorských právech, které si od roku 2022 vyhrazuje všechna práva společnosti Contoso, Ltd.
@{
Copyright = '(c) 2022 Contoso, Ltd. All rights reserved.'
}
Description
Toto nastavení popisuje modul na vysoké úrovni.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | PowerShell Gallery |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Tento manifest obsahuje krátký popis. K napsání delšího nebo víceřádkového popisu můžete použít také zde řetězec.
@{
Description = 'Example commands to show a valid module manifest'
}
PowerShellVersion
Toto nastavení určuje minimální verzi PowerShellu, která tento modul vyžaduje.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Hodnota tohoto nastavení musí být při spuštění System.Versionkonvertibilní na Import-Module .
Pokud toto nastavení není nastavené, PowerShell neomezí import modulu na základě aktuální verze.
Tento manifest například deklaruje, že modul je kompatibilní s každou verzí PowerShellu a Windows PowerShellu.
@{
# PowerShellVersion = ''
}
S PowerShellVersion nastaveným na 7.2můžete modul importovat jenom v PowerShellu 7.2 nebo novějším.
@{
PowerShellVersion = '7.2'
}
PowerShellHostName
Toto nastavení určuje název hostitelského programu PowerShellu, který modul vyžaduje, například hostitele prostředí Windows PowerShell ISE nebo ConsoleHost.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Název hostitele pro relaci najdete pomocí příkazu $Host.Name. Můžete například vidět, že hostitel vzdálené relace je ServerRemoteHost místo ConsoleHost:
$Host.Name
Enter-PSSession -ComputerName localhost
$Host.Name
ConsoleHost
[localhost]: PS C:\Users\username\Documents> $Host.Name
ServerRemoteHost
Tento modul je možné importovat do libovolného hostitele.
@{
# PowerShellHostName = ''
}
S PowerShellHostName nastaveným na ServerRemoteHostmůžete modul importovat pouze ve vzdálené relaci PowerShellu.
@{
PowerShellHostName = 'ServerRemoteHost'
}
PowerShellHostVersion
Toto nastavení určuje minimální verzi hostitelského programu PowerShellu, kterou modul vyžaduje.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Hodnota tohoto nastavení musí být při spuštění System.Versionkonvertibilní na Import-Module .
Opatrnost
I když se toto nastavení dá použít bez nastavení PowerShellHostName, zvyšuje pravděpodobnost neočekávaného chování. Toto nastavení použijte pouze v případě, že používáte nastavení PowerShellHostName.
Například modul tohoto manifestu lze importovat z libovolné relace PowerShellu spuštěné v ConsoleHostbez ohledu na verzi hostitele.
@{
PowerShellHostName = 'ConsoleHost'
# PowerShellHostVersion = ''
}
S PowerShellHostVersion nastaveným na 5.1můžete modul importovat jenom z jakékoli relace PowerShellu spuštěné v ConsoleHost, kde je verze hostitele 5.1 nebo vyšší.
@{
PowerShellHostName = 'ConsoleHost'
PowerShellHostVersion = '5.1'
}
DotNetFrameworkVersion
Toto nastavení určuje minimální verzi rozhraní Microsoft .NET Framework, kterou modul vyžaduje.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Poznámka
Toto nastavení platí jenom pro edici PowerShell Desktopu, například Windows PowerShell 5.1, a platí pouze pro verze rozhraní .NET Framework nižší než 4.5. Tento požadavek nemá žádný vliv na novější verze PowerShellu ani rozhraní .NET Framework.
Hodnota tohoto nastavení musí být při spuštění System.Versionkonvertibilní na Import-Module .
Tento manifest například deklaruje, že jeho modul lze importovat v libovolné relaci PowerShellu nebo Windows PowerShellu bez ohledu na verzi rozhraní Microsoft .NET Framework.
@{
# DotNetFrameworkVersion = ''
}
S DotNetFrameworkVersion nastaveným na 4.0můžete tento modul importovat v libovolné relaci Prostředí Windows PowerShell, kde nejnovější dostupná verze rozhraní Microsoft .NET Framework je alespoň 4.0. Můžete ho také importovat v libovolné relaci PowerShellu.
@{
DotNetFrameworkVersion = '4.0'
}
CLRVersion
Toto nastavení určuje minimální verzi modulu CLR (Common Language Runtime) rozhraní Microsoft .NET Framework, kterou modul vyžaduje.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Poznámka
Toto nastavení platí jenom pro edici PowerShell Desktopu, například Windows PowerShell 5.1, a platí pouze pro verze rozhraní .NET Framework nižší než 4.5. Tento požadavek nemá žádný vliv na novější verze PowerShellu ani rozhraní .NET Framework.
Hodnota tohoto nastavení musí být při spuštění System.Versionkonvertibilní na Import-Module .
Tento manifest například deklaruje, že jeho modul lze importovat v libovolné relaci PowerShellu nebo Windows PowerShellu bez ohledu na verzi modulu CLR rozhraní Microsoft .NET Framework.
@{
# CLRVersion = ''
}
Pokud je CLRVersion nastavená na 4.0, můžete tento modul importovat v libovolné relaci Windows PowerShellu, kde je nejnovější dostupná verze MODULU CLR alespoň 4.0. Můžete ho také importovat v libovolné relaci PowerShellu.
@{
CLRVersion = '4.0'
}
ProcessorArchitecture
Toto nastavení určuje architekturu procesoru, kterou modul vyžaduje.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| akceptované hodnoty |
None, MSIL, X86, IA64, , Amd64Arm |
| povinné | Ne |
| Hodnota, pokud nenasadíte | None |
| přijímá zástupné | Ne |
Hodnota tohoto nastavení musí být při spuštění System.Reflection.ProcessorArchitecturekonvertibilní na Import-Module .
Tento manifest například deklaruje, že jeho modul lze importovat v jakékoli relaci bez ohledu na architekturu procesoru systému.
@{
# ProcessorArchitecture = ''
}
S ProcessorArchitecture nastavenou na Amd64můžete tento modul importovat pouze v relaci spuštěné na počítači s odpovídající architekturou.
@{
ProcessorArchitecture = 'Amd64'
}
RequiredModules
Toto nastavení určuje moduly, které musí být ve stavu globální relace. Pokud požadované moduly nejsou ve stavu globální relace, PowerShell je naimportuje.
Pokud požadované moduly nejsou dostupné, příkaz Import-Module selže.
| Hodnota | |
|---|---|
| vstupní typ |
System.String[], System.Collections.Hashtable[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Položky pro toto nastavení můžou být název modulu, úplná specifikace modulu nebo cesta k souboru modulu.
Pokud je hodnota cesta, může být cesta plně kvalifikovaná nebo relativní.
Pokud je hodnota název nebo specifikace modulu, PowerShell prohledá PSModulePath zadaného modulu.
Specifikace modulu je hashovací tabulka s následujícími klíči.
-
ModuleName- Požadované. Určuje název modulu. -
GUID- volitelné. Určuje identifikátor GUID modulu. - Je také Povinné zadat aspoň jeden z následujících tří klíčů. Klíč
RequiredVersionnelze použít s klíčiModuleVersionneboMaximumVersion. Přijatelný rozsah verzí pro modul můžete definovat zadánímModuleVersionaMaximumVersionklíčů.-
ModuleVersion– Určuje minimální přijatelnou verzi modulu. -
RequiredVersion– Určuje přesnou požadovanou verzi modulu. -
MaximumVersion– Určuje maximální přijatelnou verzi modulu.
-
Poznámka
RequiredVersion byla přidána ve Windows PowerShellu 5.0.
MaximumVersion byl přidán v prostředí Windows PowerShell 5.1.
Tento manifest například deklaruje, že jeho modul nevyžaduje pro své funkce žádné další moduly.
@{
# RequiredModules = @()
}
Tento manifest deklaruje, že vyžaduje modul PSReadLine. Když v tomto manifestu spustíte Import-Module, PowerShell naimportuje nejnovější verzi psReadLine, která je k dispozici pro relaci. Pokud není k dispozici žádná verze, import vrátí chybu.
@{
RequiredModules = @(
'PSReadLine'
)
}
Spropitné
V PowerShellu 2.0 Import-Module nenaimportuje požadované moduly automaticky. Ověřuje pouze, že požadované moduly jsou ve stavu globální relace.
Tento manifest deklaruje, že vyžaduje verzi modulu PSReadLine, který je součástí vlastní složky modulu. Když v tomto manifestu spustíte Import-Module, PowerShell importuje z zadané cesty dodavatele PSReadLine.
@{
RequiredModules = @(
'Vendored\PSReadLine\PSReadLine.psd1'
)
}
Tento manifest deklaruje, že konkrétně vyžaduje verzi 2.0.0 modulu PSReadLine. Když v tomto manifestu spustíte Import-Module, PowerShell naimportuje verzi 2.0.0 psReadLine, pokud je k dispozici. Pokud není k dispozici, Import-Module vrátí chybu.
@{
RequiredModules = @(
@{
ModuleName = 'PSReadLine'
RequiredVersion = '2.0.0'
}
)
}
Tento manifest deklaruje, že vyžaduje import modulu PSReadLine ve verzi 2.0.0 nebo vyšší.
@{
RequiredModules = @(
@{
ModuleName = 'PSReadLine'
ModuleVersion = '2.0.0'
}
)
}
Tento manifest deklaruje, že vyžaduje import modulu PSReadLine ve verzi 2.0.0 nebo nižší.
@{
RequiredModules = @(
@{
ModuleName = 'PSReadLine'
MaximumVersion = '2.0.0'
}
)
}
Tento manifest deklaruje, že vyžaduje, aby byl modul PSDesiredStateConfiguration importován ve verzi rovnající se nebo vyšší než 2.0.0, ale ne vyšší než 2.99.99.
@{
RequiredModules = @(
@{
ModuleName = 'PSDesiredStateConfiguration'
ModuleVersion = '2.0.0'
MaximumVersion = '2.99.99'
}
)
}
RequiredAssemblies
Toto nastavení určuje soubory sestavení (.dll), které modul vyžaduje.
PowerShell načte zadaná sestavení před aktualizací typů nebo formátů, importem vnořených modulů nebo importem souboru modulu zadaného v hodnotě RootModule klíč.
| Hodnota | |
|---|---|
| vstupní typ | System.String[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Položky pro toto nastavení mohou být název souboru sestavení nebo cesty k tomuto nastavení. Vypište všechna požadovaná sestavení, i když jsou uvedená také jako binární moduly v nastavení NestedModules.
Tento manifest vyžaduje sestavení example.dll. Před načtením jakéhokoli formátování nebo typů souborů zadaných v tomto manifestu PowerShell načte example.dll ze složky Assemblies umístěné ve stejném adresáři jako manifest modulu.
@{
RequiredAssemblies = @(
'Assemblies\Example.dll'
)
}
ScriptsToProcess
Toto nastavení určuje soubory skriptu (.ps1), které se při importu modulu spouští ve stavu relace volajícího. Tyto skripty můžete použít k přípravě prostředí, stejně jako můžete použít přihlašovací skript.
| Hodnota | |
|---|---|
| vstupní typ | System.String[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Pokud chcete zadat skripty, které se spustí ve stavu relace modulu, použijte klíč NestedModules klíč.
Při importu tohoto manifestu spustí PowerShell Initialize.ps1 v aktuální relaci.
@{
ScriptsToProcess = @(
'Scripts\Initialize.ps1'
)
}
Pokud například Initialize.ps1 zapisuje informační zprávy a nastaví $ExampleState proměnnou:
if ([string]::IsNullOrEmpty($ExampleState)) {
Write-Information "Example not initialized."
Write-Information "Initializing now..."
$ExampleState = 'Initialized'
} else {
Write-Information "Example already initialized."
}
Při importu modulu se skript spustí, zapíše tyto zprávy a nastaví $ExampleState ve vaší relaci.
$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
Toto nastavení určuje soubory typu (.ps1xml), které se spustí při importu modulu.
| Hodnota | |
|---|---|
| vstupní typ | System.String[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Při importu modulu spustí PowerShell rutinu Update-TypeData se zadanými soubory. Vzhledem k tomu, že soubory typu nejsou vymezeny, mají vliv na všechny stavy relací v relaci.
Další informace o typech souborů najdete v tématu about_Types.ps1xml
Například při importu tohoto manifestu PowerShell načte typy zadané v souboru Example.ps1xml ze složky Types umístěné ve stejném adresáři jako manifest modulu.
@{
TypesToProcess = @(
'Types\Example.ps1xml'
)
}
FormatsToProcess
Toto nastavení určuje soubory formátování (.ps1xml), které se spustí při importu modulu.
| Hodnota | |
|---|---|
| vstupní typ | System.String[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Při importu modulu spustí PowerShell rutinu Update-FormatData se zadanými soubory. Vzhledem k tomu, že formátovací soubory nejsou vymezené, mají vliv na všechny stavy relací v relaci.
Další informace o typech souborů najdete v tématu about_Format.ps1xml
Například při importu tohoto modulu PowerShell načte formáty zadané v souboru Example.ps1xml ze složky Formats umístěné ve stejném adresáři jako manifest modulu.
@{
FormatsToProcess = @(
'Formats\Example.ps1xml'
)
}
NestedModules
Toto nastavení určuje moduly skriptu (.psm1) a binární moduly (.dll), které se importují do stavu relace modulu. Můžete také zadat soubory skriptu (.ps1). Soubory v tomto nastavení se spustí v pořadí, v jakém jsou uvedeny.
| Hodnota | |
|---|---|
| vstupní typ |
System.String[], System.Collections.Hashtable[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Položkami pro toto nastavení mohou být název modulu, úplná specifikace modulu nebo cesta k souboru modulu nebo skriptu.
Pokud je hodnota cesta, může být cesta plně kvalifikovaná nebo relativní.
Pokud je hodnota název nebo specifikace modulu, PowerShell prohledá PSModulePath zadaného modulu.
Specifikace modulu je hashovací tabulka s následujícími klíči.
-
ModuleName- Požadované. Určuje název modulu. -
GUID- volitelné. Určuje identifikátor GUID modulu. - Je také Povinné zadat aspoň jeden z následujících tří klíčů. Klíč
RequiredVersionnelze použít s klíčiModuleVersionneboMaximumVersion. Přijatelný rozsah verzí pro modul můžete definovat zadánímModuleVersionaMaximumVersionklíčů.-
ModuleVersion– Určuje minimální přijatelnou verzi modulu. -
RequiredVersion– Určuje přesnou požadovanou verzi modulu. -
MaximumVersion– Určuje maximální přijatelnou verzi modulu.
-
Poznámka
RequiredVersion byla přidána ve Windows PowerShellu 5.0.
MaximumVersion byl přidán v prostředí Windows PowerShell 5.1.
Všechny položky, které je potřeba exportovat z vnořeného modulu, musí být exportovány pomocí vnořeného modulu pomocí rutiny Export-ModuleMember nebo musí být uvedeny v některé z vlastností exportu:
- FunctionsToExport
- rutiny ToExport
- VariablesToExport
- AliasesToExport
Vnořené moduly ve stavu relace modulu jsou k dispozici kořenovému modulu, ale nevrátí se příkazem Get-Module ve stavu relace volajícího.
Skripty (.ps1), které jsou uvedené v tomto nastavení, se spouští ve stavu relace modulu, ne ve stavu relace volajícího. Pokud chcete spustit skript ve stavu relace volajícího, vypište název skriptu v nastavení ScriptsToProcess.
Například při importu tohoto manifestu se modul Helpers.psm1 načte do stavu relace kořenového modulu. Všechny rutiny deklarované v vnořeném modulu se exportují, pokud není omezeno jinak.
@{
NestedModules = @(
'Helpers\Helpers.psm1'
)
}
FunctionsToExport
Toto nastavení určuje funkce, které modul exportuje. Pomocí tohoto nastavení můžete omezit funkce, které modul exportuje. Může odebrat funkce ze seznamu exportovaných funkcí, ale nemůže do seznamu přidávat funkce.
| Hodnota | |
|---|---|
| vstupní typ | System.String[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ano |
V tomto nastavení můžete zadat položky pomocí zástupných znaků. Exportují se všechny odpovídající funkce v seznamu exportovaných funkcí.
Spropitné
Pro zajištění výkonu a zjistitelnosti byste měli vždy explicitně vypsat funkce, které má modul exportovat v tomto nastavení bez použití zástupných znaků.
Když například importujete modul s zakomentovaným nastavením, exportují se všechny funkce v kořenovém modulu a všechny vnořené moduly.
@{
# FunctionsToExport = @()
}
Tento manifest je funkčně shodný s tím, že vůbec nezadává nastavení.
@{
FunctionsToExport = '*'
}
Když FunctionsToExport nastavenou jako prázdné pole, nebudou při importu tohoto modulu k dispozici žádné funkce, které kořenový modul ani export vnořených modulů nejsou k dispozici.
@{
FunctionsToExport = @()
}
Poznámka
Pokud vytvoříte manifest modulu pomocí příkazu New-ModuleManifest a nezadáte parametr FunctionsToExport, má vytvořený manifest toto nastavení zadané jako prázdné pole. Pokud manifest neupravíte, nebudou exportovány žádné funkce z modulu.
Když FunctionsToExport nastavená tak, aby zahrnovala pouze funkci Get-Example, je při importu tohoto modulu k dispozici pouze funkce Get-Example, a to i v případě, že byly ostatní funkce exportovány kořenovým modulem nebo vnořenými moduly.
@{
FunctionsToExport = @(
'Get-Example'
)
}
Když FunctionsToExport nastaven s řetězcem se zástupnými znaky, při importu tohoto modulu se zpřístupní jakákoli funkce, jejíž název končí Example, i když byly ostatní funkce exportovány jako členy modulu kořenovým modulem nebo libovolnými vnořenými moduly.
@{
FunctionsToExport = @(
'*Example'
)
}
RutinyToExport
Toto nastavení určuje rutiny, které modul exportuje. Pomocí tohoto nastavení můžete omezit rutiny, které modul exportuje. Může odebrat rutiny ze seznamu exportovaných členů modulu, ale nemůže do seznamu přidávat rutiny.
| Hodnota | |
|---|---|
| vstupní typ | System.String[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ano |
V tomto nastavení můžete zadat položky pomocí zástupných znaků. Exportují se všechny odpovídající rutiny v seznamu exportovaných rutin.
Spropitné
Pro zajištění výkonu a zjistitelnosti byste měli vždy explicitně vypsat rutiny, které má modul exportovat v tomto nastavení bez použití zástupných znaků.
Když například importujete modul s tímto nastavením zakomentovanými, exportují se všechny rutiny v kořenovém modulu a všechny vnořené moduly.
@{
# CmdletsToExport = @()
}
Tento manifest je funkčně shodný s tím, že vůbec nezadává nastavení.
@{
CmdletsToExport = '*'
}
Když RutinyToExport nastavenou jako prázdné pole, nebudou při importu tohoto modulu k dispozici žádné rutiny kořenového modulu ani export vnořených modulů.
@{
CmdletsToExport = @()
}
Poznámka
Pokud vytvoříte manifest modulu pomocí příkazu New-ModuleManifest a nezadáte parametr RutinsToExport, má vytvořený manifest toto nastavení zadané jako prázdné pole. Pokud manifest neupravíte, nevyexportují se žádné rutiny z modulu.
Pokud RutinyToExport nastavená tak, aby zahrnovala pouze rutinu Get-Example, je při importu tohoto modulu k dispozici pouze rutina Get-Example, i když byly ostatní rutiny exportovány kořenovým modulem nebo libovolnými vnořenými moduly.
@{
CmdletsToExport = @(
'Get-Example'
)
}
Při použití rutin RutinyToExport nastaven s řetězcem se zástupnými znaky při importu tohoto modulu do libovolné rutiny, jejíž název končí Example je dostupný, i když byly ostatní rutiny exportovány jako členy modulu kořenovým modulem nebo libovolnými vnořenými moduly.
@{
CmdletsToExport = @(
'*Example'
)
}
VariablesToExport
Toto nastavení určuje proměnné, které modul exportuje. Pomocí tohoto nastavení můžete omezit proměnné, které modul exportuje. Může odebrat proměnné ze seznamu exportovaných členů modulu, ale nemůže do seznamu přidávat proměnné.
| Hodnota | |
|---|---|
| vstupní typ | System.String[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ano |
V tomto nastavení můžete zadat položky pomocí zástupných znaků. Exportují se všechny odpovídající proměnné v seznamu exportovaných členů modulu.
Spropitné
Pro zajištění výkonu a zjistitelnosti byste měli vždy explicitně vypsat proměnné, které má modul exportovat v tomto nastavení bez použití zástupných znaků.
Když například importujete modul s tímto nastavením zakomentovanými, exportují se všechny proměnné v kořenovém modulu a všechny vnořené moduly.
@{
# VariablesToExport = @()
}
Tento manifest je funkčně shodný s tím, že vůbec nezadává nastavení.
@{
VariablesToExport = '*'
}
Poznámka
Pokud vytvoříte manifest modulu pomocí příkazu New-ModuleManifest a nezadáte parametr VariablesToExport, má vytvořený manifest toto nastavení zadané jako '*'. Pokud manifest nepravíte, exportují se všechny proměnné z modulu.
Když VariablesToExport nastavenou jako prázdné pole, nebudou při importu tohoto modulu k dispozici žádné proměnné kořenového modulu ani export vnořených modulů.
@{
VariablesToExport = @()
}
Když VariablesToExport nastavena tak, aby zahrnovala pouze SomeExample proměnnou, při importu tohoto modulu je k dispozici pouze $SomeExample proměnná, i když byly vyexportovány jinými proměnnými kořenovým modulem nebo všemi vnořenými moduly.
@{
VariablesToExport = @(
'SomeExample'
)
}
Když VariablesToExport nastaven s řetězcem se zástupnými znaky, při importu tohoto modulu se zpřístupní jakákoli proměnná, jejíž název končí Example, i když byly ostatní proměnné exportovány jako členy modulu kořenovým modulem nebo libovolnými vnořenými moduly.
@{
VariablesToExport = @(
'*Example'
)
}
DscResourcesToExport
Toto nastavení určuje prostředky DSC, které modul exportuje. Pomocí tohoto nastavení můžete omezit prostředky DSC založené na třídách, které modul exportuje. Může odebrat prostředky DSC ze seznamu exportovaných členů modulu, ale nemůže do seznamu přidat prostředky DSC.
| Hodnota | |
|---|---|
| vstupní typ | System.String[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ano |
V tomto nastavení můžete zadat položky pomocí zástupných znaků. Exportují se všechny odpovídající prostředky DSC založené na třídách v modulu.
Spropitné
Pro zjistitelnost byste měli vždy explicitně vypsat všechny prostředky DSC, které modul exportuje.
Další informace o vytváření a používání prostředků DSC najdete v dokumentaci k DSC.
Tento manifest exportuje všechny prostředky DSC založené na třídě a MOF definované v kořenovém modulu a všechny vnořené moduly.
@{
# DscResourcesToExport = @()
}
Tento manifest exportuje všechny prostředky DSC založené na MOF definované v kořenovém modulu a všechny vnořené moduly, ale pouze jeden prostředek DSC založený na třídě, ExampleClassResource.
@{
DscResourcesToExport = @(
'ExampleClassResource'
)
}
Tento manifest exportuje všechny prostředky DSC, které zahrnuje. I když prostředek MOF-Based nebyl uvedený, modul by ho i nadále exportoval.
@{
DscResourcesToExport = @(
'ExampleClassResource'
'ExampleMofResourceFirst'
)
}
ModuleList
Toto nastavení je informační seznam modulů zahrnutých v tomto modulu. Tento seznam nemá vliv na chování modulu.
| Hodnota | |
|---|---|
| vstupní typ |
System.String[], System.Collections.Hashtable[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Položkami pro toto nastavení mohou být název modulu, úplná specifikace modulu nebo cesta k souboru modulu nebo skriptu.
Pokud je hodnota cesta, může být cesta plně kvalifikovaná nebo relativní.
Pokud je hodnota název nebo specifikace modulu, PowerShell prohledá PSModulePath zadaného modulu.
Specifikace modulu je hashovací tabulka s následujícími klíči.
-
ModuleName- Požadované. Určuje název modulu. -
GUID- volitelné. Určuje identifikátor GUID modulu. - Je také Povinné zadat aspoň jeden z následujících tří klíčů. Klíč
RequiredVersionnelze použít s klíčiModuleVersionneboMaximumVersion. Přijatelný rozsah verzí pro modul můžete definovat zadánímModuleVersionaMaximumVersionklíčů.-
ModuleVersion– Určuje minimální přijatelnou verzi modulu. -
RequiredVersion– Určuje přesnou požadovanou verzi modulu. -
MaximumVersion– Určuje maximální přijatelnou verzi modulu.
-
Poznámka
RequiredVersion byla přidána ve Windows PowerShellu 5.0.
MaximumVersion byl přidán v prostředí Windows PowerShell 5.1.
Tento manifest neposkytuje informační seznam modulů, které obsahuje. Může nebo nemusí obsahovat moduly. I když toto nastavení není zadané, všechny moduly uvedené v RootModule, ScriptsToProcessnebo Nastavení vnořených modulů se stále chovají normálně.
@{
# ModuleList = @()
}
Tento manifest deklaruje, že jediné moduly, které zahrnuje, jsou Example.psm1 a dílčí moduly First.psm1 a Second.psm1 ve složce Submodules.
@{
ModuleList = @(
'Example.psm1'
'Submodules\First.psm1'
'Submodules\Second.psm1'
)
}
FileList
Toto nastavení je informační seznam souborů zahrnutých v tomto modulu. Tento seznam nemá vliv na chování modulu.
| Hodnota | |
|---|---|
| vstupní typ | System.String[] |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ano |
Položky pro toto nastavení by měly být relativní cestou k souboru ze složky obsahující manifest modulu.
Když uživatel volá Get-Module proti manifestu s tímto nastavením definovaným, vlastnost FileList obsahuje úplnou cestu k těmto souborům a spojuje cestu modulu s relativní cestou každé položky.
Tento manifest neobsahuje seznam svých souborů.
@{
# FileList = @()
}
Tento manifest deklaruje, že v tomto nastavení jsou uvedeny pouze soubory, které obsahuje.
@{
FileList = @(
'Example.psd1'
'Example.psm1'
'Assemblies\Example.dll'
'Scripts\Initialize.ps1'
'Submodules\First.psm1'
'Submodules\Second.psm1'
)
}
PrivateData
Toto nastavení definuje tabulku hash dat, která jsou k dispozici pro všechny příkazy nebo funkce v oboru kořenového modulu.
| Hodnota | |
|---|---|
| vstupní typ | System.Collections.Hashtable |
| povinné | PowerShell GalleryCrescendo |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Při exportu manifestu Crescendo pro vytvoření nového modulu Export-CrescendoModule přidá dva klíče do PrivateData
- CrescendoGenerated – časové razítko při exportu modulu
- CrescendoVersion – verze Crescendo použité k exportu modulu
Můžete přidat vlastní klíče pro ukládání metadat, která chcete sledovat. Všechny klíče přidané do tohoto nastavení jsou dostupné pro funkce a rutiny v kořenovém modulu pomocí $MyInvocation.MyCommand.Module.PrivateData. Tabulka hash není k dispozici v samotném oboru modulu, pouze v rutinách, které definujete v modulu.
Tento manifest například definuje klíč PublishedDate v PrivateData.
@{
PrivateData = @{
PublishedDate = '2022-06-01'
}
}
Rutiny v modulu mají přístup k této hodnotě pomocí proměnné $MyInvocation.
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"
}
}
Po importu modulu použije funkce hodnotu z PrivateData k určení, kdy byl modul publikován.
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
Podřízená vlastnost PSData definuje tabulku hodnot hash, které podporují konkrétní scénáře rozšíření.
| Hodnota | |
|---|---|
| vstupní typ | System.Collections.Hashtable |
| povinné | PowerShell Gallery, experimentální funkce, moduly Crescendo |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Podřízená vlastnost PSData se používá v následujících scénářích:
-
PowerShell Gallery - Při vytváření manifestu modulu pomocí
New-ModuleManifestrutiny předem naplní hashtable PSData zástupnými klíči potřebnými při publikování modulu do objektu PowerShell Gallery. Další informace o manifestech modulů a publikování do galerie Prostředí PowerShell najdete v tématu Hodnoty manifestu PowerShell Gallery balíčku, které ovlivňují uživatelské rozhraní. - Experimentální funkce – Metadata o experimentální funkci se uchovávají v ExperimentálníFeatures vlastnost PSData. ExperimentalFeatures vlastnost je pole hashtables obsahující název a popis funkce. Další informace naleznete v tématu deklarování experimentálních funkcí v modulech.
- Moduly Crescendo – Při exportu manifestu Crescendo pro vytvoření nového modulu
Export-CrescendoModulehodnotuCrescendoBuiltdo vlastnosti PSData.Tags. Tuto značku můžete použít k vyhledání modulů vytvořených PowerShell Gallery pomocí Crescendo. Další informace naleznete v tématu Export-CrescendoModule. - Vlastnost PSData.ExternalModuleDependencies je pole názvů modulů, které jsou závislostmi pro tento modul. Tato vlastnost je pouze informativní a nemá vliv na instalaci nebo načítání modulu.
HelpInfoURI
Toto nastavení určuje internetovou adresu souboru HelpInfo XML modulu.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Hodnota tohoto nastavení musí být identifikátor URI (Uniform Resource Identifier), který začíná http nebo https.
Soubor HelpInfo XML podporuje funkci Aktualizovatelná nápověda, která byla zavedena v PowerShellu 3.0. Obsahuje informace o umístění souborů nápovědy ke stažení pro modul a čísla verzí nejnovějších souborů nápovědy pro každé podporované národní prostředí.
Informace o aktualizovatelné nápovědě naleznete v tématu about_Updatable_Help. Informace o souboru HelpInfo XML naleznete v tématu Podpora aktualizovatelné nápovědy.
Tento modul například podporuje aktualizovatelnou nápovědu.
@{
HelpInfoUri = 'http://https://go.microsoft.com/fwlink/?LinkID=603'
}
DefaultCommandPrefix
Toto nastavení určuje předponu před podstatnými jménem všech příkazů v modulu při jejich importu do relace. Předpony pomáhají zabránit konfliktům názvů příkazů v relaci uživatele.
| Hodnota | |
|---|---|
| vstupní typ | System.String |
| povinné | Ne |
| Hodnota, pokud nenasadíte | $null |
| přijímá zástupné | Ne |
Uživatelé modulu mohou tuto předponu přepsat zadáním parametru Prefix rutiny Import-Module.
Toto nastavení bylo zavedeno v PowerShellu 3.0.
Při importu tohoto manifestu se všechny rutiny importované z tohoto modulu Example před podstatným jménem. Například Get-Item se naimportuje jako Get-ExampleItem.
@{
DefaultCommandPrefix = 'Example'
}