about_Requires
Korte beschrijving
Hiermee voorkomt u dat een script wordt uitgevoerd zonder de vereiste elementen.
Lange beschrijving
De #Requires
instructie voorkomt dat een script wordt uitgevoerd, tenzij aan de vereisten voor de PowerShell-versie, modules (en versie) of modules (en versie) en editie 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 ScriptRequirements voor meer informatie over de syntaxis.
Regels voor gebruik
Een script kan meer dan één #Requires
instructie bevatten. De #Requires
instructies kunnen op elke regel in een script worden weergegeven.
Als u een #Requires
instructie in een functie plaatst, wordt het bereik niet beperkt. Alle #Requires
instructies worden altijd globaal toegepast en moeten worden voldaan voordat het script kan worden uitgevoerd.
Waarschuwing
Hoewel een #Requires
instructie op elke regel in een script kan worden weergegeven, heeft de positie ervan in een script geen invloed op de volgorde van de toepassing. Aan de globale status van de #Requires
instructie 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 moet worden uitgevoerd omdat de vereiste module vóór de #Requires
instructie is verwijderd. Er moest echter aan de #Requires
status worden voldaan voordat het script zelfs maar kon worden uitgevoerd. Vervolgens heeft de eerste regel van het script de vereiste status ongeldig gemaakt.
Parameters
-Assembly-pad <> | <. SPECIFICATIE VAN NET-assembly>
Belangrijk
De -Assembly
syntaxis is afgeschaft. Het heeft geen functie. De syntaxis is toegevoegd in PowerShell 5.1, maar de ondersteunende code is nooit geïmplementeerd. De syntaxis wordt nog steeds geaccepteerd voor compatibiliteit met eerdere versies.
Hiermee geeft u het pad naar het assembly-DLL-bestand of een .NET-assemblynaam. De parameter Assembly is geïntroduceerd in PowerShell 5.0. Zie 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"
-Versie <N>[.<n>]
Hiermee geeft u de minimale versie van PowerShell op die voor het script is vereist. Voer een primair versienummer en optioneel secundair versienummer in.
Bijvoorbeeld:
#Requires -Version 6.0
-PSSnapin <PSSnapin-name> [-versie <N>[.<n>]]
Hiermee geeft u een PowerShell-module op die voor het script is vereist. Voer de naam van de module en een optioneel versienummer in.
Bijvoorbeeld:
#Requires -PSSnapin DiskSnapin -Version 1.2
-Modulenaam <|><Hashtable>
Hiermee geeft u PowerShell-modules op die voor het script zijn vereist. Voer de modulenaam en een optioneel versienummer in.
Als de vereiste modules zich niet in de huidige sessie bevinden, worden ze geïmporteerd door PowerShell. Als de modules niet kunnen worden geïmporteerd, genereert PowerShell een afsluitfout.
Typ voor elke module de modulenaam (<Tekenreeks>) of een hashtabel. De waarde kan een combinatie zijn van tekenreeksen en hash-tabellen. De hashtabel bevat de volgende sleutels.
ModuleName
- Vereist Hiermee geeft u de modulenaam op.GUID
- Optionele Hiermee geeft u de GUID van de module.- 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
RequiredVersion
is toegevoegd in Windows PowerShell 5.0.
MaximumVersion
is 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
(versie 0.12.0
of lager) is geïnstalleerd.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; MaximumVersion="0.12.0" }
Vereisen dat elke versie van AzureRM.Netcore
en PowerShellGet
is geïnstalleerd.
#Requires -Modules AzureRM.Netcore, PowerShellGet
Wanneer u de RequiredVersion
sleutel gebruikt, moet u ervoor zorgen dat uw versietekenreeks exact overeenkomt met de versietekenreeks 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 precies overeenkomt met 0.12.0.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12" }
-PSEdition <PSEdition-Naam>
Hiermee geeft u een PowerShell-editie op die voor het script is vereist. Geldige waarden zijn Core voor PowerShell en Desktop voor Windows PowerShell.
Bijvoorbeeld:
#Requires -PSEdition Core
-ShellId
Hiermee geeft u de shell op die voor het script is vereist. Voer de shell-id in. Als u de parameter ShellId gebruikt, moet u ook de parameter PSSnapin opnemen.
U kunt de huidige ShellId vinden door een query uit te voeren op de $ShellId
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 #Requires
instructie, geeft deze aan dat de PowerShell-sessie waarin u het script uitvoert, moet worden gestart met verhoogde 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
)
...