Sdílet prostřednictvím


about_Requires

Krátký popis

Zabrání spuštění skriptu bez požadovaných prvků.

Dlouhý popis

Příkaz #Requires zabraňuje spuštění skriptu, pokud nejsou splněny požadavky na moduly, moduly (a verze) PowerShellu nebo moduly snap-in (a verze) a edice. 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 -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 najdete v tématu ScriptRequirements.

Pravidla pro použití

Skript může obsahovat více než jeden #Requires příkaz. Příkazy #Requires se můžou objevit na libovolném řádku skriptu.

#Requires Umístění příkazu do funkce neomezuje jeho rozsah. Všechny #Requires příkazy se vždy použijí globálně a musí být splněny před spuštěním skriptu.

Upozorňující

I když se #Requires příkaz může objevit na libovolném řádku skriptu, jeho pozice ve skriptu nemá vliv na sekvenci aplikace. Globální stav, který #Requires příkaz prezentuje, 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 před příkazem #Requires odebrán. #Requires Stav však musel být splněn před spuštěním skriptu. První řádek skriptu zneplatní požadovaný stav.

Parametry

-Assembly Assembly Assembly <path> | <. 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í.

Příklad:

#Requires -Assembly path\to\foo.dll
#Requires -Assembly "System.Management.Automation, Version=3.0.0.0,
  Culture=neutral, PublicKeyToken=31bf3856ad364e35"

-Version <N>[.<n>]

Určuje minimální verzi PowerShellu, kterou skript vyžaduje. Zadejte číslo hlavní verze a volitelné číslo podverze.

Příklad:

#Requires -Version 5.1

-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.

Příklad:

#Requires -PSSnapin DiskSnapin -Version 1.2

-Modules <Název> modulu | <Hashtable>

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. Další informace najdete v tématu 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ý argument Určuje název modulu.
  • GUID - Volitelné určuje identifikátor GUID modulu.
  • Je také povinné zadat aspoň jeden ze tří následujících 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 byl přidán ve Windows PowerShellu 5.0. MaximumVersion byl přidán ve Windows PowerShellu 5.1.

Příklad:

Vyžaduje, aby Hyper-V byla nainstalovaná (verze 1.1 nebo vyšší).

#Requires -Modules @{ ModuleName="Hyper-V"; ModuleVersion="1.1" }

Vyžaduje, aby Hyper-V byla nainstalovaná (pouze verze 1.1).

#Requires -Modules @{ ModuleName="Hyper-V"; RequiredVersion="1.1" }

Vyžaduje, aby Hyper-V byla nainstalovaná (verze 1.1 nebo menší).

#Requires -Modules @{ ModuleName="Hyper-V"; MaximumVersion="1.1" }

Vyžaduje, aby byla nainstalována jakákoli verze PSScheduledJob a PSWorkflow.

#Requires -Modules PSWorkflow, PSScheduledJob

Při použití RequiredVersion klíče se ujistěte, že řetězec verze přesně odpovídá řetězci verze, který chcete vyžadovat.

Get-Module Hyper-V
ModuleType Version    Name     ExportedCommands
---------- -------    ----     ------------------
Binary     2.0.0.0    hyper-v  {Add-VMAssignableDevice, ...}

Následující příklad selže, protože 2.0.0 přesně neodpovídá 2.0.0.0.

#Requires -Modules @{ ModuleName="Hyper-V"; RequiredVersion="2.0.0" }

-PSEdition <PSEdition-Name>

Určuje edici PowerShellu, kterou skript vyžaduje. Platné hodnoty jsou Core pro PowerShell a Desktop pro Windows PowerShell.

Příklad:

#Requires -PSEdition Core

-ShellId

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.

Příklad:

#Requires -ShellId MyLocalShell -PSSnapin Microsoft.PowerShell.Core

Poznámka:

Tento parametr je určený pro použití v mini shellech, které byly zastaralé.

-RunAs Správa istrator

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 Spustit jako Správa istrator je ignorován v operačním systému jiného systému než Windows. Parametr RunAs Správa istrator byl zaveden v PowerShellu 4.0.

Příklad:

#Requires -RunAsAdministrator

Příklady

Následující skript obsahuje dva #Requires příkazy. Pokud nejsou splněny požadavky zadané v obou příkazech, skript se nespustí. Každý #Requires příkaz musí být první položkou na řádku:

#Requires -Modules PSWorkflow
#Requires -Version 3
Param
(
    [parameter(Mandatory=$true)]
    [String[]]
    $Path
)
...

Viz také