about_Requires

Rövid leírás

Megakadályozza, hogy egy szkript a szükséges elemek nélkül fusson.

Hosszú leírás

Az #Requires utasítás megakadályozza, hogy egy szkript fusson, kivéve, ha a PowerShell verziója, moduljai (és verziója), illetve beépülő moduljai (és verziója) és a kiadás előfeltételei teljesülnek. Ha az előfeltételek nem teljesülnek, a PowerShell nem futtatja a szkriptet, és nem biztosít más futtatókörnyezeti funkciókat, például a lapkiegészítést.

Syntax

#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

A szintaxissal kapcsolatos további információkért lásd a ScriptRequirements című témakört.

Használati szabályok

A szkriptek több utasítást #Requires is tartalmazhatnak. Az #Requires utasítások a szkriptek bármely sorában megjelenhetnek.

Az utasítás függvényen #Requires belüli elhelyezése NEM korlátozza a hatókörét. A szkript végrehajtása előtt az összes #Requires utasítást globálisan alkalmazza a rendszer, és teljesítenie kell azokat.

Figyelmeztetés

Annak ellenére, hogy egy #Requires utasítás a szkript bármely sorában megjelenhet, a szkriptben elfoglalt helye nincs hatással az alkalmazás sorrendjére. Az utasítás által megadott globális állapotnak #Requires teljesülnie kell a szkript végrehajtása előtt.

Példa:

Get-Module AzureRM.Netcore | Remove-Module
#Requires -Modules AzureRM.Netcore

Előfordulhat, hogy a fenti kód nem fut, mert a szükséges modul el lett távolítva az #Requires utasítás előtt. Az állapotnak #Requires azonban teljesülnie kellett ahhoz, hogy a szkriptet végre lehessen hajtani. Ezután a szkript első sora érvényteleníti a szükséges állapotot.

Paraméterek

-Assembly <Assembly path> | <. NET-szerelvény specifikációja>

Fontos

A -Assembly szintaxis elavult. Nem szolgál funkcióként. A szintaxis a PowerShell 5.1-ben lett hozzáadva, de a támogató kód soha nem lett implementálva. A szintaxis továbbra is elfogadott a visszamenőleges kompatibilitás érdekében.

Megadja a szerelvény DLL-fájljának vagy a .NET-szerelvény nevének elérési útját. Az Assembly paraméter a PowerShell 5.0-ban lett bevezetve. További információ a .NET-szerelvényekről: Szerelvénynevek.

Például:

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

-N> verzió<[.< n>]

Megadja a PowerShell minimálisan szükséges verzióját. Adjon meg egy főverziószámot és opcionális alverziószámot.

Például:

#Requires -Version 6.0

-PSSnapin <PSSnapin-Name> [-Version <N>[.< n>]]

A szkript által igényelt PowerShell beépülő modult adja meg. Adja meg a beépülő modul nevét és a választható verziószámot.

Például:

#Requires -PSSnapin DiskSnapin -Version 1.2

-Module-Name <> | < Kivonattábla>

A szkript által igényelt PowerShell-modulokat adja meg. Adja meg a modul nevét és egy opcionális verziószámot.

Ha a szükséges modulok nem szerepelnek az aktuális munkamenetben, a PowerShell importálja őket. Ha a modulok nem importálhatók, a PowerShell leállási hibát jelez.

Minden modulhoz írja be a modul nevét (<sztring>) vagy egy kivonattáblát. Az érték sztringek és kivonattáblák kombinációja lehet. A kivonattáblában a következő kulcsok vannak.

  • ModuleName - Szükséges 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.
    • ModuleVersion – A modul minimálisan elfogadható verzióját határozza meg.
    • MaximumVersion – Meghatározza a modul maximálisan elfogadható verzióját.
    • RequiredVersion – A modul pontos, szükséges verzióját adja meg. Ez nem használható a többi verziókulcsmal.

Megjegyzés

RequiredVersionWindows PowerShell 5.0-s verzióban lett hozzáadva. MaximumVersionWindows PowerShell 5.1-ben lett hozzáadva.

Például:

AzureRM.Netcore A (verzió 0.12.0 vagy újabb) telepítésének megkövetelése.

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; ModuleVersion="0.12.0" }

AzureRM.Netcore Csak a verziót 0.12.0kell telepíteni.

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12.0" }

Ehhez telepíteni kell a AzureRM.Netcore (verzió vagy kisebb) verziót 0.12.0 .

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; MaximumVersion="0.12.0" }

A telepített és PowerShellGet telepített verziók bármelyikének megköveteléseAzureRM.Netcore.

#Requires -Modules AzureRM.Netcore, PowerShellGet

A kulcs használatakor RequiredVersion győződjön meg arról, hogy a verziósztring pontosan megegyezik a szükséges verziósztringgel.

Get-Module AzureRM.Netcore -ListAvailable
    Directory: /home/azureuser/.local/share/powershell/Modules

ModuleType Version Name            PSEdition ExportedCommands
---------- ------- ----            --------- ----------------
Script     0.12.0  AzureRM.Netcore Core

Az alábbi példa meghiúsul, mert a 0.12 nem pontosan egyezik a 0.12.0-sval.

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12" }

-PSEdition <PSEdition-Name>

A szkript által igényelt PowerShell-kiadást adja meg. Az érvényes értékek a PowerShellhez és a Desktophoz készült Core for Windows PowerShell.

Például:

#Requires -PSEdition Core

-ShellId

Megadja a szkript által igényelt rendszerhéjat. Adja meg a rendszerhéj azonosítóját. Ha a ShellId paramétert használja, a PSSnapin paramétert is meg kell adnia. Az aktuális ShellId az automatikus változó lekérdezésével $ShellId kereshető meg.

Például:

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

Megjegyzés

Ez a paraméter a már elavult minihéjakban való használatra szolgál.

-RunAsAdministrator

Ha ezt a kapcsolóparamétert hozzáadja az #Requires utasításhoz, az azt határozza meg, hogy a PowerShell-munkamenetet, amelyben a szkriptet futtatja, emelt szintű felhasználói jogosultságokkal kell elindítani. A RunAsAdministrator paramétert a rendszer figyelmen kívül hagyja egy nem Windows operációs rendszeren. A RunAsAdministrator paraméter a PowerShell 4.0-ban lett bevezetve.

Például:

#Requires -RunAsAdministrator

Példák

A következő szkript két #Requires utasítást ad meg. Ha a két utasításban megadott követelmények nem teljesülnek, a szkript nem fut. Minden #Requires utasításnak egy sor első elemének kell lennie:

#Requires -Modules AzureRM.Netcore
#Requires -Version 6.0
Param
(
    [parameter(Mandatory=$true)]
    [String[]]
    $Path
)
...

Lásd még