about_Requires

Korte beschrijving

Hiermee voorkomt u dat een script wordt uitgevoerd zonder de vereiste elementen.

Lange beschrijving

Met de #Requires instructie voorkomt u dat een script wordt uitgevoerd, tenzij aan de PowerShell-versie, modules (en versie) of modules (en versie) en aan de vereisten voor edities wordt voldaan. Als niet aan de vereisten wordt voldaan, voert PowerShell het script niet uit of biedt het andere runtimefuncties, zoals het voltooien van tabbladen.

Syntaxis

#Requires -Version <N>[.<n>]
#Requires -Modules { <Module-Name> | <Hashtable> }
#Requires -PSEdition <PSEdition-Name>
#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.

Het plaatsen van een #Requires instructie binnen een functie beperkt het bereik ervan niet. 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 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 mag 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.

Parameters

-Assembly Assembly <pad> | <. NET-assemblyspecificatie>

Belangrijk

De -Assembly syntaxis is afgeschaft. 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 assemblyparameter is geïntroduceerd in PowerShell 5.0. Zie Assembly-namen voor meer informatie over .NET-assembly's.

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

-Modules <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 deze geïmporteerd in PowerShell. Als de modules niet kunnen worden geïmporteerd, genereert PowerShell een afsluitfout.

De #Requires instructie laadt geen klasse- en opsommingsdefinities in de module. Gebruik de using module instructie aan het begin van het script om de module te importeren, inclusief de klasse- en opsommingsdefinities. Zie about_Using voor meer informatie.

Typ voor elke module de naam van de module (<tekenreeks>) of een hashtabel. De waarde kan een combinatie van tekenreeksen en hashtabellen zijn. De hashtabel heeft de volgende sleutels.

  • ModuleName - Vereist : hiermee geeft u de modulenaam op.
  • GUID - Optioneel : hiermee geeft u de GUID van de module op.
  • Het is ook vereist om ten minste één van de drie onderstaande sleutels op te geven.
    • ModuleVersion - Hiermee geeft u een minimaal acceptabele versie van de module.
    • MaximumVersion - Hiermee geeft u de maximaal aanvaardbare versie van de module.
    • RequiredVersion - Hiermee geeft u een exacte, vereiste versie van de module. Dit kan niet worden gebruikt met de andere versiesleutels.

Notitie

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" }

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 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-Name <>

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

-RunAs Beheer istrator

Wanneer deze switchparameter 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 RunAs Beheer istrator wordt genegeerd op een niet-Windows-besturingssysteem. De parameter RunAs Beheer istrator 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 instructie moet het eerste item op een regel zijn:

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

Zie ook