Megosztás a következőn keresztül:


about_Requires

Rövid leírás

Megakadályozza, hogy a szkriptek a szükséges elemek nélkül fussanak.

Hosszú leírás

Az #Requires utasítás megakadályozza a szkriptek futtatását, kivéve, ha a PowerShell-verzió, a modulok (és a verzió) é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 lapkitöltést.

Syntax

#Requires -Version <N>[.<n>]
#Requires -Modules { <Module-Name> | <Hashtable> }
#Requires -PSEdition <PSEdition-Name>
#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 minden #Requires utasítást globálisan alkalmazunk, és teljesülnie kell.

Figyelmeztetés

Annak ellenére, hogy egy #Requires utasítás bármilyen sorban megjelenhet egy szkriptben, a szkriptben elfoglalt helye nem befolyásolja az alkalmazás sorrendjét. 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 azonban teljesülnie kellett, #Requires mielőtt a szkript végrehajtható lett volna. Ezután a szkript első sora érvényteleníti a szükséges állapotot.

Paraméterek

-Szerelvényszerelvény <elérési útja> | <. NET-szerelvény specifikációja>

Fontos

A -Assembly szintaxis elavult. Nem szolgál függvényt. 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 elfogadható 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 Szerelvény paraméter a PowerShell 5.0-ban lett bevezetve. A .NET-szerelvényekről további információt az Szerelvénynevek című témakörben talál.

Példa:

#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ális verzióját, amelyet a szkript igényel. Adjon meg egy főverziószámot és egy választható alverziószámot.

Példa:

#Requires -Version 6.0

-Modulok <modul neve> | <Kivonatoló>

Megadja a szkript által igényelt PowerShell-modulokat. Adja meg a modul nevét és a választható verziószámot.

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

Az #Requires utasítás nem tölt be osztály- és számbavételi definíciókat a modulban. using module A szkript elején található utasítással importálhatja a modult, beleértve az osztály- és enumerálási definíciókat is. További információ: about_Using.

Minden modulhoz írja be a modul nevét (<Sztring>) vagy egy kivonatolót. Az érték sztringek és kivonatolók kombinációja lehet. A kivonatoló a következő kulcsokat tartalmazza.

  • ModuleName - A Kötelező a modul nevét adja meg.
  • GUID - Nem kötelező : A modul GUID azonosítója.
  • 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 adja meg.
    • MaximumVersion – Meghatározza a modul maximálisan elfogadható verzióját.
    • RequiredVersion – A modul pontos, kötelező verzióját adja meg. Ez nem használható a többi Verzió billentyűvel.

Feljegyzés

RequiredVersion a Windows PowerShell 5.0-s verzióban lett hozzáadva. MaximumVersion a Windows PowerShell 5.1-ben lett hozzáadva.

Példa:

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

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

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

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

AzureRM.Netcore Ehhez telepíteni kell a (vagy kisebb) verziót0.12.0.

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

Követelje meg, hogy az AzureRM.Netcore adott verzió bármelyik PowerShellGet verziója telepítve legyen.

#Requires -Modules AzureRM.Netcore, PowerShellGet

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

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

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

A következő példa meghiúsul, mert a 0.12 nem felel meg pontosan a 0.12.0-nak.

#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 PowerShell és a Windows PowerShell Desktop core értékei.

Példa:

#Requires -PSEdition Core

-RunAsAdministrator

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

Példa:

#Requires -RunAsAdministrator

Példák

Az alábbi 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