Informazioni su requiresAbout Requires

Breve descrizioneShort description

Impedisce l'esecuzione di uno script senza gli elementi necessari.Prevents a script from running without the required elements.

Descrizione lungaLong description

L' #Requires istruzione impedisce l'esecuzione di uno script a meno che non siano soddisfatti la versione di PowerShell, i moduli (e la versione) o gli snap-in (e versione) e i prerequisiti dell'edizione.The #Requires statement prevents a script from running unless the PowerShell version, modules (and version), or snap-ins (and version), and edition prerequisites are met. Se i prerequisiti non sono soddisfatti, lo script non viene eseguito da PowerShell.If the prerequisites aren't met, PowerShell doesn't run the script.

SintassiSyntax

#Requires -Assembly { <Path to .dll> | <.NET assembly specification> }
#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

Per ulteriori informazioni sulla sintassi, vedere ScriptRequirements.For more information about the syntax, see ScriptRequirements.

Regole per l'utilizzoRules for use

Uno script può includere più di un' #Requires istruzione.A script can include more than one #Requires statement. Le #Requires istruzioni possono essere visualizzate in qualsiasi riga di uno script.The #Requires statements can appear on any line in a script.

L'inserimento di un' #Requires istruzione all'interno di una funzione non ne limita l'ambito.Placing a #Requires statement inside a function does NOT limit its scope. Tutte le #Requires istruzioni vengono sempre applicate a livello globale e devono essere soddisfatte prima che lo script possa essere eseguito.All #Requires statements are always applied globally, and must be met, before the script can execute.

Avviso

Anche se un' #Requires istruzione può essere visualizzata in qualsiasi riga di uno script, la relativa posizione in uno script non influisce sulla sequenza della relativa applicazione.Even though a #Requires statement can appear on any line in a script, its position in a script does not affect the sequence of its application. Lo stato globale #Requires presente nell'istruzione deve essere soddisfatto prima dell'esecuzione dello script.The global state the #Requires statement presents must be met before script execution.

Esempio:Example:

Get-Module AzureRM.Netcore | Remove-Module
#Requires -Modules AzureRM.Netcore

Si potrebbe pensare che il codice precedente non venga eseguito perché il modulo richiesto è stato rimosso prima dell' #Requires istruzione.You might think that the above code shouldn't run because the required module was removed before the #Requires statement. Tuttavia, lo #Requires stato deve essere soddisfatto prima che lo script possa essere eseguito.However, the #Requires state had to be met before the script could even execute. Quindi, la prima riga dello script ha invalidato lo stato richiesto.Then the first line of the script invalidated the required state.

ParametriParameters

-Assembly <Assembly path> |<.NET assembly specification>-Assembly <Assembly path> | <.NET assembly specification>

Specifica il percorso del file DLL dell'assembly o un nome di assembly .NET.Specifies the path to the assembly DLL file or a .NET assembly name. Il parametro assembly è stato introdotto in PowerShell 5,0.The Assembly parameter was introduced in PowerShell 5.0. Per ulteriori informazioni sugli assembly .NET, vedere nomi degli assembly.For more information about .NET assemblies, see Assembly names.

Ad esempio:For example:

#Requires -Assembly path\to\foo.dll
#Requires -Assembly "System.Management.Automation, Version=3.0.0.0,
  Culture=neutral, PublicKeyToken=31bf3856ad364e35"

-Version <N> [. <n> ]-Version <N>[.<n>]

Specifica la versione minima di PowerShell richiesta dallo script.Specifies the minimum version of PowerShell that the script requires. Immettere un numero di versione principale e un numero di versione secondaria facoltativo.Enter a major version number and optional minor version number.

Ad esempio:For example:

#Requires -Version 6.0

-PSSnapin <PSSnapin-Name> [-Version <N> [. <n> ]]-PSSnapin <PSSnapin-Name> [-Version <N>[.<n>]]

Specifica uno snap-in di PowerShell necessario per lo script.Specifies a PowerShell snap-in that the script requires. Immettere il nome dello snap-in e un numero di versione facoltativo.Enter the snap-in name and an optional version number.

Ad esempio:For example:

#Requires -PSSnapin DiskSnapin -Version 1.2

-Moduli <Module-Name> |<Hashtable>-Modules <Module-Name> | <Hashtable>

Specifica i moduli di PowerShell richiesti dallo script.Specifies PowerShell modules that the script requires. Immettere il nome del modulo e un numero di versione facoltativo.Enter the module name and an optional version number.

Se i moduli necessari non sono inclusi nella sessione corrente, PowerShell li importa.If the required modules aren't in the current session, PowerShell imports them. Se i moduli non possono essere importati, PowerShell genera un errore di terminazione.If the modules can't be imported, PowerShell throws a terminating error.

Per ogni modulo, digitare il nome del modulo ( <String> ) o una tabella hash.For each module, type the module name (<String>) or a hash table. Il valore può essere una combinazione di stringhe e tabelle hash.The value can be a combination of strings and hash tables. La tabella hash include le chiavi seguenti.The hash table has the following keys.

  • ModuleName - Obbligatorio Specifica il nome del modulo.ModuleName - Required Specifies the module name.
  • GUID - Facoltativo Specifica il GUID del modulo.GUID - Optional Specifies the GUID of the module.
  • È anche necessario specificare una delle tre chiavi seguenti.It's also Required to specify one of the three below keys. Queste chiavi non possono essere usate insieme.These keys can't be used together.
    • ModuleVersion : Specifica una versione minima accettabile del modulo.ModuleVersion - Specifies a minimum acceptable version of the module.
    • RequiredVersion : Specifica una versione esatta e obbligatoria del modulo.RequiredVersion - Specifies an exact, required version of the module.
    • MaximumVersion -Specifica la versione massima accettabile del modulo.MaximumVersion - Specifies the maximum acceptable version of the module.

Nota

RequiredVersion è stato aggiunto in Windows PowerShell 5,0.RequiredVersion was added in Windows PowerShell 5.0. MaximumVersion è stato aggiunto in Windows PowerShell 5,1.MaximumVersion was added in Windows PowerShell 5.1.

Ad esempio:For example:

È necessario che AzureRM.Netcore 0.12.0 sia installato (versione o superiore).Require that AzureRM.Netcore (version 0.12.0 or greater) is installed.

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

Richiedi che AzureRM.Netcore sia installata solo la versione 0.12.0 .Require that AzureRM.Netcore ( only version 0.12.0) is installed.

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

Richiede che AzureRM.Netcore 0.12.0 sia installato (versione o inferiore).Requires that AzureRM.Netcore (version 0.12.0 or lesser) is installed.

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

Richiedere l'installazione di qualsiasi versione di AzureRM.Netcore e PowerShellGet .Require that any version of AzureRM.Netcore and PowerShellGet is installed.

#Requires -Modules AzureRM.Netcore, PowerShellGet

Quando si usa la RequiredVersion chiave, verificare che la stringa di versione corrisponda esattamente alla stringa di versione richiesta.When using the RequiredVersion key, ensure your version string exactly matches the version string you require.

Get-Module AzureRM.Netcore -ListAvailable
    Directory: /home/azureuser/.local/share/powershell/Modules

ModuleType Version Name            PSEdition ExportedCommands
---------- ------- ----            --------- ----------------
Script     0.12.0  AzureRM.Netcore Core

L'esempio seguente ha esito negativo perché 0,12 non corrisponde esattamente a 0.12.0.The following example fails because 0.12 doesn't exactly match 0.12.0.

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

-PSEdition <PSEdition-Name>-PSEdition <PSEdition-Name>

Specifica un'edizione di PowerShell richiesta dallo script.Specifies a PowerShell edition that the script requires. I valori validi sono Core per PowerShell core e Desktop per Windows PowerShell.Valid values are Core for PowerShell Core and Desktop for Windows PowerShell.

Ad esempio:For example:

#Requires -PSEdition Core

-ShellId-ShellId

Specifica la shell necessaria per lo script.Specifies the shell that the script requires. Immettere l'ID della shell.Enter the shell ID. Se si usa il parametro ShellId , è necessario includere anche il parametro PSSnapin .If you use the ShellId parameter, you must also include the PSSnapin parameter. È possibile trovare il ShellId corrente eseguendo una query sulla $ShellId variabile automatica.You can find the current ShellId by querying the $ShellId automatic variable.

Ad esempio:For example:

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

Nota

Questo parametro è destinato all'uso in mini shell, deprecate.This parameter is intended for use in mini-shells, which have been deprecated.

-RunAsAdministrator-RunAsAdministrator

Quando questo parametro switch viene aggiunto all' #Requires istruzione, viene specificato che la sessione di PowerShell in cui viene eseguito lo script deve essere avviata con diritti utente elevati.When this switch parameter is added to your #Requires statement, it specifies that the PowerShell session in which you're running the script must be started with elevated user rights. Il parametro RunAsAdministrator viene ignorato in un sistema operativo non Windows.The RunAsAdministrator parameter is ignored on a non-Windows operating system. Il parametro RunAsAdministrator è stato introdotto in PowerShell 4,0.The RunAsAdministrator parameter was introduced in PowerShell 4.0.

Ad esempio:For example:

#Requires -RunAsAdministrator

EsempiExamples

Lo script seguente contiene due #Requires istruzioni.The following script has two #Requires statements. Se i requisiti specificati in entrambe le istruzioni non vengono soddisfatti, lo script non viene eseguito.If the requirements specified in both statements aren't met, the script doesn't run. Ogni #Requires istruzione deve essere il primo elemento di una riga:Each #Requires statement must be the first item on a line:

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

Vedere ancheSee also

about_Automatic_Variablesabout_Automatic_Variables

about_Language_Keywordsabout_Language_Keywords