over_Benodigdheden

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 PowerShell-versie, modules (en versie) of snap-ins (en versie) en editievereisten wordt voldaan. Als niet aan de vereisten wordt voldaan, voert PowerShell het script niet uit.

Syntaxis

#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 #Requires instructie bevatten. De #Requires-instructies kunnen op elke regel in een script worden weergegeven.

Het plaatsen van een #Requires instructie in een functie beperkt NIET het bereik ervan. 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 voorkomen, heeft de positie ervan in een script geen invloed op de volgorde van de toepassing. De globale status die de #Requires 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 moet worden uitgevoerd omdat de vereiste module vóór de #Requires-instructie is verwijderd. De #Requires-status moest echter worden bereikt voordat het script zelfs kon worden uitgevoerd. Vervolgens heeft de eerste regel van het script de vereiste status ongeldig gemaakt.

Parameterwaarden

-Assembly <Assemblagepad> | <.NET-assemblagespecificatie>

Belangrijk

De -Assembly-syntaxis is verouderd verklaard. Het dient 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. Voor meer informatie over .NET-assembly's, zie Assembly-namen.

Voorbeeld:

#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 het script vereist. Voer een primair versienummer en optioneel secundair versienummer in.

Voorbeeld:

#Requires -Version 6.0

-PSSnapin PSSnapin-name <> [-version <N>[.<n>]]

Hiermee geeft u een PowerShell-module op die nodig is voor het script. Voer de modulenaam en een optioneel versienummer in.

Voorbeeld:

#Requires -PSSnapin DiskSnapin -Version 1.2

-Modules <modulenaam> | <Hashtabel>

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 deze geïmporteerd in 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 hashtabellen. De hash-tabel heeft de volgende sleutels.

  • ModuleName - Vereist Geeft de modulenaam op.
  • GUID - Optionele Geeft de GUID van de module aan.
  • Het is ook vereist om een van de drie onderstaande toetsen op te geven. Deze toetsen kunnen niet samen worden gebruikt.
    • ModuleVersion - Hiermee geeft u een minimaal acceptabele versie van de module op.
    • RequiredVersion - Hiermee geeft u een exacte, vereiste versie van de module op.
    • MaximumVersion - Hiermee geeft u de maximaal acceptabele versie van de module.

Opmerking

RequiredVersion is toegevoegd in Windows PowerShell 5.0. MaximumVersion is toegevoegd in Windows PowerShell 5.1.

Voorbeeld:

Vereisen dat AzureRM.Netcore (versie 0.12.0 of hoger) is geïnstalleerd.

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

Vereist 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 minder) 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 de 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 exact overeenkomt met 0.12.0.

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

-PSEdition <PSEdition-Naam>

Hiermee geeft u een PowerShell-editie op die het script vereist. Geldige waarden zijn Core voor PowerShell en Desktop- voor Windows PowerShell.

Voorbeeld:

#Requires -PSEdition Core

-ShellId

Hiermee geeft u de shell op die het script vereist. Voer de shell-id in. Als u de ShellId-parameter gebruikt, moet u ook de PSSnapin-parameter opnemen. U kunt de huidige ShellId vinden door een query uit te voeren op de $ShellId automatische variabele.

Voorbeeld:

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

Opmerking

Deze parameter is bedoeld voor gebruik in mini-shells, die zijn afgeschaft.

-UitvoerenAlsBeheerder

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.

Voorbeeld:

#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 verklaring moet het eerste item op een regel zijn:

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

Zie ook