O que são variáveis ​​automáticas no PowerShell

O Que Sao Variaveis Automaticas No Powershell



do PowerShell ' Variáveis ​​Automáticas ” são essenciais para o gerenciamento do sistema, automação e atividades de script. Essas variáveis ​​são incorporadas pelo tempo de execução do PowerShell e servem como espaços reservados para armazenar e fazer referência a informações específicas durante a execução de um script ou comando. Compreender e utilizar essas variáveis ​​automáticas de forma eficaz pode aumentar muito a eficiência e a funcionalidade dos scripts do PowerShell.

Este artigo tem como objetivo explorar o conceito de “Variáveis ​​automáticas” no PowerShell, seu significado e como elas podem ser aproveitadas em vários cenários.







O que são variáveis ​​automáticas no PowerShell?

Para começar, vamos nos aprofundar na definição de “ Variáveis ​​Automáticas ”. Essas variáveis ​​são predefinidas e criadas automaticamente pelo PowerShell durante a execução do script. Eles servem a propósitos diferentes, incluindo fornecer informações sobre o sistema, argumentos de linha de comando, detalhes relacionados ao script e muito mais.



O PowerShell oferece várias “Variáveis ​​automáticas” e cada uma delas serve a um propósito distinto na execução do script. Essas variáveis ​​são as seguintes:



1. $PSVersionTable

Uma das variáveis ​​automáticas fundamentais no PowerShell é “ $PSVersionTable ”. Essa variável permite que os desenvolvedores de script verifiquem a versão do PowerShell que está sendo utilizada, o que pode ser crucial ao considerar a compatibilidade e disponibilidade de determinados recursos e funcionalidades.





As seguintes propriedades estão associadas a esta variável:

PSVersão: Retorna o número da versão do PowerShell.



Edição PSE: Para PowerShell 4 e versões anteriores, bem como PowerShell 5.1 em versões do Windows com todos os recursos, essa propriedade tem o valor “Desktop”. Essa característica tem o valor do Core para PowerShell 6 e posterior, bem como do Windows PowerShell 5.1 para edições de baixo consumo, como Windows Nano Server ou Windows IoT.

GitCommitId: Busca o ID de confirmação do GitHub dos arquivos de origem.

OS: Registra informações sobre o sistema de computador que o PowerShell está usando.

Plataforma: Retorna a plataforma de suporte do sistema operacional. O Unix tem valor no Linux e no macOS. Confira $IsMacOs e $IsLinux.

Versões compatíveis com PS: As versões do PowerShell compatíveis com a versão atual são retornadas.

PSRemotingProtocolVersion: Retorna o número da versão do protocolo de gerenciamento remoto do PowerShell.

SerializaçãoVersão: Retorna a versão do método de serialização.

WSManStackVersão: Retorna o número da versão da pilha WS-Management.

$ PSVersionTable

2. $Args

Outra variável automática essencial no PowerShell é “ $Args ”, que contém uma matriz de argumentos de linha de comando passados ​​para um script ou função. Essa variável capacita os desenvolvedores a processar e manipular os argumentos fornecidos dinamicamente em seus scripts.

Ao definir uma função, você pode usar a palavra-chave “param” para declarar os parâmetros ou pode adicionar uma lista de parâmetros separados por vírgulas entre parênteses após o nome da função. A variável “$Args” de uma ação de evento armazena objetos que servem como espaços reservados para os parâmetros do evento que está sendo tratado:

para cada ( $arg em $Args ) {
Host de gravação $arg
}

3. $MyInvocation

O ' $MyInvocation ” fornece dados cruciais de segundo plano sobre o script ou procedimento que está sendo executado no momento. Ele oferece propriedades como o nome do script, o número da linha do script e se o script está sendo executado interativamente ou não. Essas propriedades ajudam os desenvolvedores de script a implementar a lógica de ramificação, definir mecanismos de tratamento de erros ou gerar logs e relatórios significativos:

$ MinhaInvocação

4. $Erro

Uma variável automática menos conhecida “ $Erro ”, captura efetivamente quaisquer mensagens de erro ou exceções que ocorrem durante a execução do script. “$Error” pode ser acessado para recuperar detalhes de erro específicos, como mensagens de exceção, rastreamentos de pilha ou códigos de erro, permitindo análise e depuração detalhadas.

O erro mais recente é representado pelo primeiro objeto de erro no array “ $Erro[0] “. Você pode usar a opção comum ErrorAction com o valor “Ignore” para impedir que os erros sejam adicionados ao array “$Error”.

Suponha que digitamos um comando preciso:

ip [ onfig

Agora, se entrarmos no cmdlet “$Error”:

$ Erro

5. $PSCmdlet

Ao trabalhar com módulos do PowerShell, a variável automática “ $PSCmdlet ” entra em vigor. Essa variável fornece acesso à instância atual do cmdlet ou função que está sendo invocada, facilitando a interação direta com suas propriedades e métodos.

Usando “$PSCmdlet”, desenvolvedores de script avançados podem ajustar e aprimorar o comportamento dos módulos estendendo ou modificando as funcionalidades integradas. Você pode usar os atributos e métodos do objeto em seu cmdlet ou código de função em resposta aos critérios de uso:

função typeof-psCmdlet {
[ cmdletBinding ( ) ] parâmetro ( )
eco 'tipo de ` $psCmdlet é $($psCmdlet.GetType() .Nome completo)'
}

typeof-psCmdlet

Além das variáveis ​​mencionadas, o PowerShell abrange variáveis ​​automáticas como $HOME, $PROFILE, $PWD e muitas outras, que atendem a diferentes propósitos, como acessar entradas, rastrear erros, recuperar informações do ambiente, gerenciar parâmetros e muito mais. Essas variáveis ​​estão listadas abaixo:

Variáveis ​​Automáticas Descrição
$$ Contém o último token na linha anterior recebida pela sessão do PowerShell.
$? Armazena o status de execução do último comando.
$^ Contém o primeiro token da última linha recebida pela sessão.
$_ Representa o objeto atual no pipeline.
$ConsoleFileName Contém o caminho do arquivo de console (.psc1) usado mais recentemente na sessão.
$EnabledExperimentalRecursos Contém uma lista dos recursos experimentais ativados.
$Evento Contém um objeto “PSEventArgs” que representa o evento que está sendo processado.
$EventArgs Contém o primeiro argumento do evento que está sendo processado.
$EventSubscriber Representa o assinante do evento que está sendo processado.
$ExecutionContext Representa o contexto de execução do host do PowerShell.
$falso Representa o valor booleano “False”.
$foreach Contém o enumerador de um loop “for-Each”.
$HOME Contém o caminho completo do diretório inicial do usuário.
$Host Representa o aplicativo host atual para PowerShell.
$input Serve como um enumerador para todas as entradas passadas para uma função ou script.
$IsCoreCLR Indica se a sessão está sendo executada no .NET Core Runtime (CoreCLR).
$IsLinux Indica se a sessão está sendo executada em um sistema operacional Linux.
$IsMacOS Indica se a sessão está sendo executada em um sistema operacional MacOS.
$IsWindows Identifica se a sessão está sendo executada em um sistema operacional Windows.
$LASTEXITCODE Armazena o código de saída do último programa nativo ou script do PowerShell.
$partidas Contém strings correspondentes dos operadores “-match” e “-notmatch”.
$NestedPromptLevel Rastreia o nível de prompt atual em comandos aninhados ou cenários de depuração.
$nulo Representa um valor nulo ou vazio.
$PID Contém o identificador de processo (PID) da sessão do PowerShell.
$PERFIL Contém o caminho completo do perfil do PowerShell para o usuário atual e o aplicativo host.
$PSBoundParameters Contém um dicionário de parâmetros passados ​​para um script ou função e seus valores.
$PSCommandPath Contém o caminho completo e o nome do arquivo do script que está sendo executado.
$PSCulture Reflete a cultura do atual espaço de execução do PowerShell.
$PSEdition Contém as informações da edição do PowerShell.
$PSHOME Contém o caminho completo do diretório de instalação do PowerShell.
$PSItem Igual a $_, representa o objeto atual no pipeline.
$PSScriptRoot Contém o caminho completo do diretório pai do script em execução.
$PSSenderInfo Contém informações sobre o usuário que iniciou a PSSession.
$PSUICultura Reflete a cultura da interface do usuário (IU) configurada no sistema operacional.
$PWD Representa o diretório de trabalho atual da sessão do PowerShell.
$Remetente Contém o objeto que gerou um evento.
$ShellId Contém o identificador do shell atual.
$StackTrace Armazena o rastreamento de pilha para o erro mais recente.
$interruptor Contém o enumerador da instrução “Switch”.
$este Refere-se à instância de uma classe em blocos de script que estendem classes.
$true Representa o valor booleano “True”.

Todas as “variáveis ​​automáticas” no PowerShell podem ser encontradas executando o comando abaixo:

Get-Variable

Conclusão

Variáveis ​​Automáticas ” formam a espinha dorsal dos scripts do PowerShell, permitindo que os desenvolvedores obtenham informações sobre o sistema, argumentos de linha de comando, contexto de execução do script e muito mais. Aproveitando variáveis ​​automáticas como “$PSVersionTable”, “$Args”, “$MyInvocation”, “$Error” e outras, os desenvolvedores de scripts do PowerShell podem criar práticas simplificadas de administração do sistema.