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
Zabrání spuštění skriptu bez požadovaných prvků.
Dlouhý popis
Příkaz #Requires zabrání spuštění skriptu, pokud nejsou splněny požadavky na verzi PowerShellu, moduly (a verzi) nebo moduly snap-in (a verzi) a edici. Pokud nejsou splněné požadavky, PowerShell nespustí skript ani neposkytuje jiné funkce modulu runtime, jako je například dokončování tabulátoru.
Syntaxe
#Requires -Version <N>[.<n>]
#Requires -Modules { <Module-Name> | <Hashtable> }
#Requires -PSEdition <PSEdition-Name>
#Requires -RunAsAdministrator
Další informace o syntaxi naleznete v tématu ScriptRequirements.
Pravidla pro použití
Skript může obsahovat více než jeden příkaz #Requires. Příkazy #Requires se můžou zobrazit na libovolném řádku skriptu.
Umístění příkazu #Requires do funkce neomezuje jeho rozsah. Všechny příkazy #Requires se vždy použijí globálně a musí být splněny před spuštěním skriptu.
Výstraha
I když se příkaz #Requires může objevit na libovolném řádku skriptu, jeho pozice ve skriptu nemá vliv na sekvenci aplikace. Globální stav, který příkaz #Requires představuje, musí být splněn před spuštěním skriptu.
Příklad:
Get-Module AzureRM.Netcore | Remove-Module
#Requires -Modules AzureRM.Netcore
Možná si myslíte, že výše uvedený kód by se neměl spouštět, protože požadovaný modul byl odebrán před příkazem #Requires. Před spuštěním skriptu však musel být splněn #Requires stav. První řádek skriptu zneplatní požadovaný stav.
Parametry
-Assembly <cesta sestavení> | <specifikace sestavení .NET>
Důležité
Syntaxe -Assembly je zastaralá. Neslouží žádné funkci. Syntaxe byla přidána v PowerShellu 5.1, ale podpůrný kód nebyl nikdy implementován. Syntaxe je stále přijímána kvůli zpětné kompatibilitě.
Určuje cestu k souboru knihovny DLL sestavení nebo názvu sestavení .NET. Parametr sestavení byl zaveden v PowerShellu 5.0. Další informace o sestaveních .NET naleznete v tématu názvy sestavení.
Například:
#Requires -Assembly path\to\foo.dll
#Requires -Assembly "System.Management.Automation, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
-Verze <N>[.<n>]
Určuje minimální verzi PowerShellu, kterou skript vyžaduje. Zadejte číslo hlavní verze a volitelné číslo podverze.
Například:
#Requires -Version 6.0
-Modules <module-name> | <> hashovací tabulky
Určuje moduly PowerShellu, které skript vyžaduje. Zadejte název modulu a volitelné číslo verze.
Pokud požadované moduly nejsou v aktuální relaci, PowerShell je naimportuje. Pokud se moduly nedají importovat, PowerShell vyvolá ukončující chybu.
Příkaz #Requires nenačítá definice tříd a výčtů v modulu. K importu modulu, včetně definic tříd a výčtů, použijte příkaz using module na začátku skriptu. Pro více informací viz about_Using.
Pro každý modul zadejte název modulu (<String>) nebo hashtable. Hodnota může být kombinací řetězců a hashovatelných tabulek. Hashtable obsahuje následující klíče.
-
ModuleName- Povinný 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íčů.
-
ModuleVersion– Určuje minimální přijatelnou verzi modulu. -
MaximumVersion– Určuje maximální přijatelnou verzi modulu. -
RequiredVersion– Určuje přesnou požadovanou verzi modulu. Tuto možnost nelze použít s jinými klíči verze.
-
Poznámka:
RequiredVersion byla přidána ve Windows PowerShellu 5.0.
MaximumVersion byl přidán v prostředí Windows PowerShell 5.1.
Například:
Vyžaduje instalaci AzureRM.Netcore (verze 0.12.0 nebo vyšší).
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; ModuleVersion="0.12.0" }
Vyžaduje instalaci AzureRM.Netcore (pouze verze 0.12.0).
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12.0" }
Vyžaduje instalaci AzureRM.Netcore (verze 0.12.0 nebo nižší).
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; MaximumVersion="0.12.0" }
Vyžaduje, aby byla nainstalována jakákoli verze AzureRM.Netcore a PowerShellGet.
#Requires -Modules AzureRM.Netcore, PowerShellGet
Při použití klíče RequiredVersion se ujistěte, že řetězec vaší verze přesně odpovídá požadovanému řetězci verze.
Get-Module AzureRM.Netcore -ListAvailable
Directory: /home/azureuser/.local/share/powershell/Modules
ModuleType Version Name PSEdition ExportedCommands
---------- ------- ---- --------- ----------------
Script 0.12.0 AzureRM.Netcore Core
Následující příklad selže, protože 0.12 přesně neodpovídá 0.12.0.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12" }
-PSEdition <Název PSEdition>
Určuje edici PowerShellu, kterou skript vyžaduje. Platné hodnoty jsou core pro PowerShell a Desktop pro Windows PowerShell.
Například:
#Requires -PSEdition Core
-RunAsAdministrator
Když se tento parametr přepínače přidá do příkazu #Requires, určuje, že relace PowerShellu, ve které skript spouštíte, musí být spuštěna se zvýšenými uživatelskými právy. Parametr RunAsAdministrator se ignoruje v operačním systému bez Windows. Parametr RunAsAdministrator byl zaveden v PowerShellu 4.0.
Například:
#Requires -RunAsAdministrator
Příklady
Následující skript obsahuje dva příkazy #Requires. Pokud nejsou splněny požadavky zadané v obou příkazech, skript se nespustí. Každý příkaz #Requires musí být první položkou na řádku:
#Requires -Modules AzureRM.Netcore
#Requires -Version 6.0
Param
(
[parameter(Mandatory=$true)]
[String[]]
$Path
)
...