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ěny požadavky, PowerShell skript nespustí.
Syntaxe
#Requires -Version <N>[.<n>]
#Requires -PSSnapin <PSSnapin-Name> [-Version <N>[.<n>]]
#Requires -Modules { <Module-Name> | <Hashtable> }
#Requires -PSEdition <PSEdition-Name>
#Requires -ShellId <ShellId> -PSSnapin <PSSnapin-Name> [-Version <N>[.<n>]]
#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í #Requires příkazu uvnitř funkce NEOMEZUJE její 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ž #Requires se příkaz může objevit na libovolném řádku skriptu, jeho umístění ve skriptu nemá vliv na posloupnost jeho použití. 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
-PSSnapin PSSnapin-Name <> [-Version <N>[.<n>]]
Určuje modul snap-in PowerShellu, který skript vyžaduje. Zadejte název modulu snap-in a volitelné číslo verze.
Například:
#Requires -PSSnapin DiskSnapin -Version 1.2
-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.
Pro každý modul zadejte název modulu (<String>) nebo zatřiďovací tabulku. Hodnota může být kombinací řetězců a zatřiďovacích tabulek. Zatřiďovací tabulka má následující klíče.
-
ModuleName- Povinný Určuje název modulu. -
GUID- Volitelné Určuje identifikátor GUID modulu. -
Je také nutné zadat jeden ze tří níže uvedených klíčů. Tyto klíče nelze použít společně.
-
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.
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
-Identifikátor prostředí
Určuje prostředí, které skript vyžaduje. Zadejte ID prostředí. Pokud používáte parametr ShellId , musíte zahrnout také parametr PSSnapin .
Aktuální ID prostředí najdete dotazem na automatickou $ShellId proměnnou.
Například:
#Requires -ShellId MyLocalShell -PSSnapin Microsoft.PowerShell.Core
Poznámka:
Tento parametr je určený pro použití v mini shellech, které byly zastaralé.
-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
)
...