sobre_Requisitos

Breve descrição

Impede que um script seja executado sem os elementos necessários.

Descrição longa

A #Requires instrução impede que um script seja executado, a menos que os pré-requisitos de versão, módulos (e versão) ou snap-ins (e versão) e edição do PowerShell sejam atendidos. Se os pré-requisitos não forem atendidos, o PowerShell não executará o script.

Sintaxe

#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

Para obter mais informações sobre a sintaxe, consulte ScriptRequirements.

Regras de utilização

Um script pode incluir mais de uma instrução #Requires. As instruções #Requires podem aparecer em qualquer linha de um script.

Colocar uma #Requires instrução dentro de uma função NÃO limita seu escopo. Todas as instruções #Requires são sempre aplicadas globalmente e devem ser atendidas antes que o script possa ser executado.

Advertência

Embora uma #Requires instrução possa aparecer em qualquer linha de um script, sua posição em um script não afeta a sequência de seu aplicativo. O estado global que a instrução #Requires apresenta deve ser atendido antes da execução do script.

Exemplo:

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

Você pode pensar que o código acima não deve ser executado porque o módulo necessário foi removido antes da instrução #Requires. No entanto, o estado #Requires teve que ser cumprido antes que o script pudesse ser executado. Em seguida, a primeira linha do script invalidou o estado necessário.

Parâmetros

-Caminho de montagem <montagem> | <> de especificação de montagem .NET

Importante

A sintaxe -Assembly foi preterida. Não tem qualquer função. A sintaxe foi adicionada no PowerShell 5.1, mas o código de suporte nunca foi implementado. A sintaxe ainda é aceita para compatibilidade com versões anteriores.

Especifica o caminho para o ficheiro DLL do assembly ou o nome de uma assembly .NET. O parâmetro Assembly foi introduzido no PowerShell 5.0. Para obter mais informações sobre assemblagens .NET, consulte Nomes de assemblagem.

Por exemplo:

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

-Versão <N>[.<n>]

Especifica a versão mínima do PowerShell que o script exige. Insira um número de versão principal e um número de versão secundária opcional.

Por exemplo:

#Requires -Version 6.0

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

Especifica um snap-in do PowerShell que o script exige. Insira o nome do snap-in e um número de versão opcional.

Por exemplo:

#Requires -PSSnapin DiskSnapin -Version 1.2

-Módulos <Nome do Módulo> | <Hashtable>

Especifica os módulos do PowerShell que o script requer. Insira o nome do módulo e um número de versão opcional.

Se os módulos necessários não estiverem na sessão atual, o PowerShell os importa. Se os módulos não puderem ser importados, o PowerShell lançará um erro de encerramento.

Para cada módulo, digite o nome do módulo (<String>) ou uma tabela de hash. O valor pode ser uma combinação de cadeias de caracteres e tabelas de hash. A tabela de hash tem as seguintes chaves.

  • ModuleName - Obrigatório Especifica o nome do módulo.
  • GUID - Opcional Especifica o GUID do módulo.
  • Também é necessário especificar uma das três chaves abaixo. Essas chaves não podem ser usadas juntas.
    • ModuleVersion - Especifica uma versão mínima aceitável do módulo.
    • RequiredVersion - Especifica uma versão exata e necessária do módulo.
    • MaximumVersion - Especifica a versão máxima aceitável do módulo.

Observação

RequiredVersion foi adicionado ao Windows PowerShell 5.0. MaximumVersion foi adicionado ao Windows PowerShell 5.1.

Por exemplo:

Exija que o AzureRM.Netcore (versão 0.12.0 ou superior) esteja instalado.

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

Exija que AzureRM.Netcore (apenas versão 0.12.0) esteja instalado.

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

Requer que o AzureRM.Netcore (versão 0.12.0 ou inferior) esteja instalado.

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

Exija que qualquer versão do AzureRM.Netcore e PowerShellGet esteja instalada.

#Requires -Modules AzureRM.Netcore, PowerShellGet

Ao usar a tecla RequiredVersion, verifique se a cadeia de caracteres de versão corresponde exatamente à cadeia de caracteres de versão necessária.

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

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

O exemplo a seguir falha porque 0.12 não corresponde exatamente 0.12.0.

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

-PSEdition <PSEdition-Name>

Especifica uma edição do PowerShell que o script requer. Os valores válidos são Core para PowerShell e Desktop para Windows PowerShell.

Por exemplo:

#Requires -PSEdition Core

-ShellId

Especifica o shell que o script requer. Insira o ID do shell. Se você usar o parâmetro ShellId , também deverá incluir o parâmetro PSSnapin . Você pode encontrar o ShellId atual consultando a $ShellId variável automática.

Por exemplo:

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

Observação

Este parâmetro destina-se ao uso em mini-shells, que foram preteridos.

-ExecutarComoAdministrador

Quando esse parâmetro switch é adicionado à instrução #Requires, ele especifica que a sessão do PowerShell na qual você está executando o script deve ser iniciada com direitos de usuário elevados. O parâmetro RunAsAdministrator é ignorado num sistema operativo não Windows. O parâmetro RunAsAdministrator foi introduzido no PowerShell 4.0.

Por exemplo:

#Requires -RunAsAdministrator

Exemplos

O script a seguir tem duas instruções #Requires. Se os requisitos especificados em ambas as instruções não forem atendidos, o script não será executado. Cada declaração #Requires deve ser o primeiro item de uma linha:

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

Ver também