about_Requires
Korte beschrijving
Hiermee voorkomt u dat een script wordt uitgevoerd zonder de vereiste elementen.
Lange beschrijving
De instructie voorkomt dat een script wordt uitgevoerd, tenzij aan de #Requires PowerShell-versie, -modules (en -versie) of -modules (en -versie) en aan de editie-vereisten wordt voldaan. Als niet aan de vereisten wordt voldaan, wordt het script niet uitgevoerd in PowerShell.
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
Zie ScriptRequirementsvoor meer informatie over de syntaxis.
Regels voor gebruik
Een script kan meer dan één instructie #Requires bevatten. De #Requires instructies kunnen op elke regel in een script worden weergegeven.
Als u #Requires een instructie binnen een functie plaatst, wordt het bereik ervan NIET beperkt. Alle #Requires instructies worden altijd globaal toegepast en moeten worden voldaan voordat het script kan worden uitgevoerd.
Waarschuwing
Hoewel een instructie op elke regel in een script kan worden weergegeven, heeft de positie in een script geen invloed op de #Requires volgorde van de toepassing. Aan de globale status die #Requires de instructie presenteert, moet worden voldaan voordat het script wordt uitgevoerd.
Voorbeeld:
Get-Module AzureRM.Netcore | Remove-Module
#Requires -Modules AzureRM.Netcore
U denkt misschien dat de bovenstaande code niet mag worden uitgevoerd omdat de vereiste module is verwijderd vóór de #Requires instructie . De status moest #Requires echter worden voldaan voordat het script zelfs kon worden uitgevoerd. Vervolgens heeft de eerste regel van het script de vereiste status ongeldig gemaakt.
Parameters
-Assembly <Assembly path> | <.NET assembly specification>
Belangrijk
De -Assembly syntaxis is afgeschaft. Er wordt geen functie gebruikt. De syntaxis is toegevoegd in PowerShell 5.1, maar de ondersteunende code is nooit geïmplementeerd. De syntaxis wordt nog steeds geaccepteerd voor achterwaartse compatibiliteit.
Hiermee geeft u het pad naar het assembly-DLL-bestand of de naam van een .NET-assembly op. De parameter Assembly is geïntroduceerd in PowerShell 5.0. Zie Assembly names (Assembly-namen) voor meer informatie over .NET-assembly's.
Bijvoorbeeld:
#Requires -Assembly path\to\foo.dll
#Requires -Assembly "System.Management.Automation, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
-Version <N> [. <n> ]
Hiermee geeft u de minimale versie van PowerShell op die voor het script is vereist. Voer een hoofdversienummer en optioneel secundair versienummer in.
Bijvoorbeeld:
#Requires -Version 6.0
-PSSnapin <PSSnapin-Name> [-versie <N> [. <n> ]]
Hiermee geeft u een PowerShell-module op die vereist is voor het script. Voer de naam van de module en een optioneel versienummer in.
Bijvoorbeeld:
#Requires -PSSnapin DiskSnapin -Version 1.2
-Modules <Module-Name> | <Hashtable>
Hiermee geeft u PowerShell-modules op die vereist zijn voor het script. Voer de modulenaam en een optioneel versienummer in.
Als de vereiste modules niet aanwezig zijn in de huidige sessie, importeert PowerShell ze. Als de modules niet kunnen worden geïmporteerd, wordt in PowerShell een eindfout weergegeven.
Typ voor elke module de modulenaam ( <String> ) of een hash-tabel. De waarde kan een combinatie van tekenreeksen en hashtabellen zijn. De hash-tabel heeft de volgende sleutels.
ModuleName- Vereist Hiermee geeft u de modulenaam.GUID- Optioneel Hiermee geeft u de GUID van de module op.- Het is ook Vereist om een van de drie onderstaande sleutels op te geven. Deze sleutels kunnen niet samen worden gebruikt.
ModuleVersion- Hiermee geeft u een minimaal aanvaardbare versie van de module op.RequiredVersion- Hiermee geeft u een exacte, vereiste versie van de module op.MaximumVersion- Hiermee geeft u de maximaal aanvaardbare versie van de module op.
Notitie
RequiredVersionis toegevoegd in Windows PowerShell 5.0.
MaximumVersionis toegevoegd in Windows PowerShell 5.1.
Bijvoorbeeld:
Vereisen dat AzureRM.Netcore (versie 0.12.0 of hoger) is geïnstalleerd.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; ModuleVersion="0.12.0" }
Vereisen dat AzureRM.Netcore (alleen versie ) 0.12.0 is geïnstalleerd.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12.0" }
Vereist dat AzureRM.Netcore 0.12.0 (versie of minder) is geïnstalleerd.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; MaximumVersion="0.12.0" }
Vereisen dat een versie van AzureRM.Netcore en PowerShellGet is geïnstalleerd.
#Requires -Modules AzureRM.Netcore, PowerShellGet
Wanneer u de sleutel RequiredVersion gebruikt, moet u ervoor zorgen dat uw versiereeks exact overeenkomt met de versiereeks die u nodig hebt.
Get-Module AzureRM.Netcore -ListAvailable
Directory: /home/azureuser/.local/share/powershell/Modules
ModuleType Version Name PSEdition ExportedCommands
---------- ------- ---- --------- ----------------
Script 0.12.0 AzureRM.Netcore Core
Het volgende voorbeeld mislukt omdat 0.12 niet exact overeen komt met 0.12.0.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12" }
-PSEdition <PSEdition-Name>
Hiermee geeft u een PowerShell-editie op die vereist is voor het script. Geldige waarden zijn Core voor PowerShell en Desktop voor Windows PowerShell.
Bijvoorbeeld:
#Requires -PSEdition Core
-ShellId
Hiermee geeft u de shell die het script vereist. Voer de shell-id in. Als u de ShellId parameter, moet u ook de PSSnapin parameter.
U kunt de huidige ShellId vinden door een query uit te voeren op $ShellId de automatische variabele.
Bijvoorbeeld:
#Requires -ShellId MyLocalShell -PSSnapin Microsoft.PowerShell.Core
Notitie
Deze parameter is bedoeld voor gebruik in mini-shells, die zijn afgeschaft.
-RunAsAdministrator
Wanneer deze schakelparameter wordt toegevoegd aan uw instructie, geeft deze aan dat de PowerShell-sessie waarin u het script gebruikt, moet worden gestart met verhoogde #Requires gebruikersrechten. De parameter RunAsAdministrator wordt genegeerd op een niet-Windows besturingssysteem. De parameter RunAsAdministrator is geïntroduceerd in PowerShell 4.0.
Bijvoorbeeld:
#Requires -RunAsAdministrator
Voorbeelden
Het volgende script heeft twee #Requires -instructies. Als niet aan de vereisten in beide instructies wordt voldaan, wordt het script niet uitgevoerd. Elke #Requires instructie moet het eerste item op een regel zijn:
#Requires -Modules AzureRM.Netcore
#Requires -Version 6.0
Param
(
[parameter(Mandatory=$true)]
[String[]]
$Path
)
...