Magic Quadrant™ para gerenciamento de acesso privilegiado 2025: Netwrix reconhecida pelo quarto ano consecutivo. Baixe o relatório.

Plataforma
Centro de recursosBlog
Como usar variáveis do PowerShell

Como usar variáveis do PowerShell

Oct 4, 2018

As variáveis do PowerShell atuam como contêineres para dados que podem ser criados, modificados e utilizados em scripts ou sessões. Elas suportam múltiplos tipos, incluindo strings, inteiros, arrays e hashtables, e podem ter escopo local, global ou baseado em script. Os administradores podem definir descrições, visibilidade e opções, listar ou limpar variáveis e exportar seus conteúdos. O uso adequado de variáveis simplifica a automação e a eficiência de scripts.

Introdução

Uma variável no PowerShell é um contêiner ao qual é atribuído um valor. Pense nelas como caixas nomeadas onde você pode colocar informações para usar mais tarde. O valor de uma variável pode ser acessado simplesmente referenciando a variável, e pode ser alterado a qualquer momento ao reatribuir a variável com um novo valor. Variáveis são muito úteis para acompanhar dados em scripts ou durante uma sessão do PowerShell.

Exemplos de variáveis PowerShell

Vamos mergulhar em algumas das maneiras mais úteis de usar variáveis no PowerShell.

Criar e definir variáveis no PowerShell

Os nomes de variáveis no PowerShell começam com um sinal de dólar ($), e não são sensíveis a maiúsculas e minúsculas, então, por exemplo, $VAR e $var referem-se à mesma variável. Um nome de variável pode conter letras, números e sublinhados. Embora possam conter espaços e outros caracteres especiais, é melhor evitar esses.

Uma vez que você tenha escolhido um nome para uma variável no PowerShell, você pode criá-la e atribuir-lhe um valor em um único comando. Por exemplo, se você quiser criar uma variável chamada $Greeting e atribuir a ela o valor de string Hello, World, você usaria este comando:

      $Greeting = "Hello, World"
      

Após este comando, sempre que você digitar $Greeting, o PowerShell substituirá o valor que você atribuiu a essa variável, conforme mostrado abaixo.

Image

As aspas duplas (“ ”) no exemplo anterior indicam que o valor é uma string. Aqui está como você pode criar uma variável e atribuir a ela um valor inteiro:

      $var1 = 75

$var2 = 25
      

Você pode realizar operações aritméticas com variáveis numéricas, conforme mostrado aqui:

Image

Você também pode combinar strings usando o operador de sinal de mais (+):

      $var10 = “Complete”

$var11 = “Visibility

$var12 = $var10 + $var11
      
Image

Se você adicionar um número a uma string, o número automaticamente se torna uma string:

      $var1 = “Netwrix”

$var2 = 2023
      
Image

Defina ou Verifique o Tipo de uma Variável

Variáveis no PowerShell podem armazenar múltiplos tipos de dados, incluindo strings, inteiros e objetos mais complexos como arrays. Quando você atribui um valor a uma variável, o PowerShell determina automaticamente o tipo de dado baseado no valor. Isso é conhecido como tipagem dinâmica. Como mencionado acima, strings requerem aspas.

Aqui estão alguns exemplos:

      $var1 = "Hello"   # The type of $var1 is String

$var2 = 25        # The type of $var2 is Integer

$var3 = Get-Date # The type of $var3 is DateTime
      

Para descobrir qual o tipo de uma variável, usamos o parâmetro GetType:

      $var5 = “Netwrix”
$var5.GetType () .FullName
      
Image

Os tipos de variáveis mais comuns incluem os seguintes:

  • String: Texto (você pode declarar uma string colocando o texto entre aspas)
  • Integer: Um número inteiro
  • Double: Um número que inclui um ponto decimal
  • Boolean: Um valor de verdade, ou $True ou $False
  • DateTime: Uma data e hora
  • Array: Uma estrutura de dados que contém uma coleção de itens do mesmo tipo ou de tipos diferentes. Os itens são armazenados sequencialmente e podem ser acessados por um índice. Aqui está um exemplo de como declarar um array:
      $myArray = "apple", "orange", "cherry"
      
  • HashTable: Uma estrutura de dados que compreende uma coleção não ordenada de pares chave-valor. É como um dicionário onde você usa uma chave única para armazenar e recuperar cada valor. Isso torna as hashtables excelentes para buscas e cenários onde você precisa procurar valores facilmente. Para criar uma hashtable, você usa @{}. Dentro das chaves, você especifica cada par como a chave seguida por um sinal de igual (=) e depois o valor, conforme ilustrado neste exemplo:
      $myHashtable = @{

    "Fruit1" = "Apple"

    "Fruit2" = "Orange"

    "Fruit3" = "Cherry"

}
      

Definir o Escopo de uma Variável

O escopo é a visibilidade e acessibilidade de uma variável. O PowerShell possui vários escopos diferentes:

  • Local — O escopo atual
  • Global —O escopo que está em vigor quando o PowerShell é iniciado ou quando você cria uma nova sessão ou espaço de execução
  • Script — O escopo que é criado enquanto um script é executado

As variáveis são especificadas no PowerShell da seguinte forma:

      $global:Var1 = "Global Variable"

$script:Var2 = "Script Variable"

$local:Var3 = "Local Variable"
      

Automatize tarefas com Netwrix Directory Manager

Simplifique a gestão de grupos e automatize tarefas sem scripts complexos do PowerShell

Variáveis Públicas vs. Privadas

A propriedade Visibility de uma variável está relacionada ao escopo; ela determina se você pode ver o item fora do script no qual foi criado. A propriedade Visibility pode ter um valor de Public ou Private. Variáveis privadas podem ser visualizadas e alteradas apenas no escopo no qual foram criadas. Variáveis públicas são acessíveis de qualquer escopo.

Listar (Obter) Variáveis no Escopo Atual

Você pode listar todas as variáveis atuais em uma sessão do PowerShell usando o cmdlet Get-Variable, que recupera todas as variáveis no escopo atual. O exemplo abaixo lista algumas das variáveis usadas em exemplos anteriores.

Image

Imprimir uma Variável

Você pode gerar uma variável em um arquivo .txt, .csv ou HTML.

Para escrever em um arquivo .txt, use o comando Out-File :

      $var5 = “Hello World”

$var5 | Out-File c:scriptsHello_World.txt
      

Para exportar dados para um arquivo .csv, utilize o comando Export-Csv :

      $var6 = Get-Process

$var6 | SELECT Name, Path | Export-Csv -Path c:scriptsprocesses.csv
      
Image

E para escrever em um arquivo HTML, use o comando ConvertTo-Html:

      $var6 = Get-Process

$var6 | ConvertTo-HTML -Property Name, Path>C:scriptprocesses.html
      

Para ler um arquivo que você exportou, use o cmdlet Get-Content:

      Get-Content c:\scripts\processes.csv
      
Image

Limpar uma variável

O cmdlet Clear-Variable é usado para remover o valor de uma variável, mas mantém o próprio objeto da variável. Quando uma variável é limpa, ela ainda existe, mas seu valor é $null. No exemplo abaixo, uma variável é criada e depois limpa, com cada ação confirmada.

Image

Remover uma Variável

O cmdlet Remove-Variable é utilizado para excluir uma variável e seu valor.

No exemplo abaixo, uma variável chamada Example é criada e atribuída a string “Hello World!”. A variável é então deletada pelo cmdlet Remove-Variable. Depois, o script verifica a variável e retorna um erro porque ela não existe mais.

Image

Observe que o cmdlet Remove-Variable remove apenas a variável no escopo atual. Se houver uma variável com o mesmo nome em um escopo pai, essa variável não será afetada. Da mesma forma, o cmdlet Remove-Variable não afeta quaisquer escopos filhos que possam conter uma variável com o mesmo nome.

A diferença entre os comandos Clear-Variable e Remove-Variable é que limpar a variável deleta apenas o valor da variável, enquanto removê-la deleta a própria variável.

Parâmetros

Os cmdlets discutidos acima aceitam vários parâmetros. Vamos revisar os parâmetros mais úteis e como eles funcionam.

Descrição

PowerShell variables have a Description property that you can set using the Set-Variable cmdlet with the Description parameter:

      Set-Variable -Name "myVariable" -Description "This is my sample variable"
      

Excluir

Para excluir certas variáveis quando estiver usando o cmdlet Get-Variable, utilize o parâmetro Exclude e especifique os nomes das variáveis a serem excluídas. No exemplo abaixo, criamos 4 variáveis. Em seguida, usamos o comando Get-Variable -Exclude para excluir duas delas.

      $Var1 = "Test1"

$Var2 = "Test2"

$Var3 = "Test3"

$OtherVar = "Other"

Get-Variable -Exclude Var1, OtherVar
      

(Para incluir apenas variáveis específicas, use o parâmetro Name conforme descrito abaixo.)

Força

Você pode usar o parâmetro Force com alguns comandos, como Set-Variable e Remove-Variable, para ignorar quaisquer restrições que possam impedir a conclusão do comando.

Por exemplo, normalmente qualquer tentativa de alterar o valor de uma variável somente leitura resultará em um erro, conforme mostrado abaixo:

Image

No entanto, você pode substituir esse comportamento com o parâmetro Force:

Image

Nome

Você pode usar o parâmetro Name para se referir a uma variável pelo nome sem o sinal de dólar. Em particular, você pode usá-lo para obter apenas variáveis cujos nomes correspondam a um determinado padrão. Por exemplo, utilizando o cmdlet abaixo, você pode recuperar apenas variáveis cujos nomes começam com “Net”:

      Get-Variable -Name "NET*"
      

O asterisco (*) é um caractere curinga que representa qualquer número de caracteres adicionais.

Opção

Você pode especificar o parâmetro Option com o cmdlet Set-Variable. Os valores disponíveis para este parâmetro incluem:

  • Nenhum (padrão): A variável se comporta como uma variável normal.
  • ReadOnly: A variável não pode ser alterada ou excluída.
  • Constant: A variável não pode ser alterada ou excluída, mesmo com o parâmetro Force.
  • Privado: A variável está disponível apenas no escopo atual.
  • AllScope: A variável é copiada para todos os novos escopos que são criados.

Um exemplo da opção ReadOnly é mostrado aqui:

Image

PassThru

Por padrão, a maioria dos cmdlets que realizam uma ação (como Set-Variable, New-Item e Remove-Item) não produzem saída alguma; eles simplesmente completam a ação silenciosamente. No entanto, se você usar o parâmetro PassThru, o cmdlet gerará um objeto que representa o item que você manipulou com o cmdlet.

Aqui está um exemplo de uso de PassThru com Set-Variable:

Image

WhatIf

Você pode usar o parâmetro WhatIf em cmdlets que fazem alterações, como Set-Variable, Remove-Variable ou Clear-Variable, para ver o que aconteceria se você executasse o cmdlet, sem fazer nenhuma alteração real. Isso é útil se você não tem certeza sobre o que um cmdlet faria. Um exemplo é mostrado abaixo:

Image

Conclusão

Com um sólido entendimento de como as variáveis do PowerShell podem ser criadas e manipuladas, você pode criar scripts do PowerShell para auxiliar na automação de tarefas, administração de sistemas, desenvolvimento de software e muito mais.

Como a Netwrix pode ajudar

Precisa proteger seu Active Directory e o ambiente Entra ID (Azure AD) de forma mais eficiente e eficaz? Considere Netwrix Directory Manager. Suas capacidades automatizadas de gerenciamento de grupos e usuários reduzem o risco de data breaches enquanto eliminam tarefas administrativas manuais que consomem tempo.

Netwrix Directory Manager oferece a você a capacidade de:

  • Automatize o provisionamento e o desprovisionamento de usuários do seu sistema de informações de recursos humanos (HRIS) para o Active Directory, Entra ID e aplicações habilitadas para SCIM, permitindo assim que novos funcionários sejam produtivos rapidamente e reduzindo o risco de adversários assumirem identidades obsoletas.
  • Atualize automaticamente os grupos de diretórios com base em mudanças como a promoção de um funcionário ou a transição para outro cargo, conforme registrado no seu HRIS. Essa automação mantém os direitos de acesso atualizados em tempo quase real, conforme necessário para segurança e conformidade, ao mesmo tempo que economiza tempo da sua equipe de TI.
  • Delegue a gestão de grupos e usuários para as pessoas que sabem quem deve ter acesso a quê. Fluxos de trabalho simples permitem que os proprietários das linhas de negócio revisem seus grupos e aprovem ou neguem solicitações de acesso de usuários, reduzindo o risco de ter grupos e usuários com privilégios excessivos no seu diretório.
  • Mantenha o diretório limpo e mais fácil de gerir com a criação, expiração e exclusão automáticas de usuários.
  • Mantenha e comprove a conformidade com regulamentos e padrões com insights profundos, automação eficaz e relatórios claros sobre grupos e membros.

Tutorial de Scripting do Windows PowerShell para Iniciantes

Saiba mais

Compartilhar em

Saiba Mais

Sobre o autor

Asset Not Found

Jonathan Blackwell

Chefe de Desenvolvimento de Software

Desde 2012, Jonathan Blackwell, um engenheiro e inovador, tem fornecido liderança em engenharia que colocou o Netwrix GroupID na vanguarda da gestão de grupos e usuários para ambientes Active Directory e Azure AD. Sua experiência em desenvolvimento, marketing e vendas permite que Jonathan compreenda totalmente o mercado de Identity Management e como os compradores pensam.