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