Powershell - Guia rápido

Windows PowerShell é um command-line shell e scripting languageprojetado especialmente para administração de sistema. É analógico no Linux é chamado de script Bash. Construído no .NET Framework, o Windows PowerShell ajuda os profissionais de TI a controlar e automatizar a administração do sistema operacional Windows e dos aplicativos executados no ambiente Windows Server.

Comandos do Windows PowerShell, chamados cmdlets, permitem gerenciar os computadores a partir da linha de comando. Os provedores do Windows PowerShell permitem que você acesse armazenamentos de dados, como o Registro e o Armazenamento de certificados, com a mesma facilidade com que acessa o sistema de arquivos.

Além disso, o Windows PowerShell tem um analisador de expressão sofisticado e uma linguagem de script totalmente desenvolvida. Portanto, em palavras simples, você pode concluir todas as tarefas que realiza com a GUI e muito mais.

PowerShell ISE

O Windows PowerShell Integrated Scripting Environment(ISE) é um aplicativo host para Windows PowerShell. No Windows PowerShell ISE, você pode executar comandos e escrever, testar e depurar scripts em uma única interface de usuário gráfica baseada no Windows com edição multilinha, preenchimento de tabulação, coloração de sintaxe, execução seletiva, ajuda contextual e suporte para direito a -left idiomas.

Você pode usar itens de menu e atalhos de teclado para executar muitas das mesmas tarefas que executaria no console do Windows PowerShell. Por exemplo, ao depurar um script no Windows PowerShell ISE, para definir um ponto de interrupção de linha em um script, clique com o botão direito do mouse na linha de código e clique emToggle Breakpoint.

Comandos básicos do PowerShell

Existem muitos comandos do PowerShell e é muito difícil incluir todos esses comandos neste tutorial. Vamos nos concentrar em alguns dos comandos mais importantes e básicos do PowerShell.

A primeira etapa é ir para o comando Get-Help que fornece uma explicação sobre como fornecer um comando e seu parâmetro.

O ícone do PowerShell pode ser encontrado na barra de tarefas e no menu iniciar. Basta clicar no ícone para abrir.

Para abri-lo, basta clicar no ícone e a tela a seguir será aberta e significa que o PowerShell está pronto para você trabalhar.

Versão PowerShell

A última versão do PowerShell é 5.0 e para verificar o que está instalado em nosso servidor, digitamos o seguinte comando - :$PSVersionTable como mostrado na captura de tela a seguir e da tela também sabemos que temos PSVersion 4.0

Para atualizar com a versão mais recente, onde há mais Cmdlets, precisamos baixar Windows Management Framework 5.0 a partir do seguinte link - https://www.microsoft.com/en-us/download/details.aspx?id=50395 e instale-o.

PowerShell ISE

O Windows PowerShell Integrated Scripting Environment(ISE) é um aplicativo host para Windows PowerShell. No Windows PowerShell ISE, você pode executar comandos e escrever, testar e depurar scripts em uma única interface de usuário gráfica baseada no Windows com edição multilinha, preenchimento de tabulação, coloração de sintaxe, execução seletiva, ajuda contextual e suporte para direito a -left idiomas.

Você pode usar itens de menu e atalhos de teclado para executar muitas das mesmas tarefas que executaria no console do Windows PowerShell. Por exemplo, ao depurar um script no Windows PowerShell ISE, para definir um ponto de interrupção de linha em um script, clique com o botão direito do mouse na linha de código e clique emToggle Breakpoint.

Para abri-lo, basta ir para Iniciar - Pesquisar e, em seguida, Tipo - PowerShell como mostrado na imagem a seguir.

Em seguida, clique em Windows PowerShell ISE. Ou clique na seta para baixo conforme mostrado na imagem a seguir.

Ele listará todos os aplicativos instalados no servidor e, em seguida, clique em Windows PowerShell ISE.

A seguinte tabela será aberta -

Possui três seções, que incluem - O PowerShell Console com o número 1, então Scripting File o número 2 e o terceiro é o Command Module onde você pode encontrar o módulo.

Ao criar o script, você pode executar diretamente e ver o resultado como o exemplo a seguir -

Comandos básicos do PowerShell

Existem muitos comandos do PowerShell e é muito difícil incluir todos esses comandos neste tutorial. Vamos nos concentrar em alguns dos comandos mais importantes e básicos do PowerShell.

A primeira etapa é ir para o comando Get-Help que fornece uma explicação sobre como fornecer um comando e seu parâmetro.

To get the list of Updates -

  • Get-HotFix e instalar um hot fix da seguinte maneira
  • Get-HotFix -id kb2741530

Um cmdlet ou "Command let" é um comando leve usado no ambiente Windows PowerShell. O tempo de execução do Windows PowerShell invoca esses cmdlets no prompt de comando. Você pode criar e invocá-los programaticamente por meio de APIs do Windows PowerShell.

Cmdlet vs Comando

Os cmdlets são muito diferentes dos comandos em outros ambientes de shell de comando nas seguintes maneiras -

  • Os cmdlets são objetos de classe do .NET Framework; e não apenas executáveis ​​autônomos.

  • Os cmdlets podem ser facilmente construídos a partir de apenas algumas linhas de código.

  • Análise, apresentação de erro e formatação de saída não são tratadas por cmdlets. Isso é feito pelo tempo de execução do Windows PowerShell.

  • O processo de cmdlets funciona em objetos que não estão no fluxo de texto e os objetos podem ser passados ​​como saída para pipelining.

  • Os cmdlets são baseados em registros, pois processam um único objeto por vez.

Conseguindo ajuda

A primeira etapa é ir para o comando Get-Help que fornece uma explicação sobre como fornecer um comando e seu parâmetro.

A seguir estão os exemplos de scripts do PowerShell em Arquivos e Pastas.

Sr. Não. Operação e descrição
1 Criação de pastas

Script de exemplo para mostrar como criar pasta (s) usando scripts do PowerShell.

2 Criação de arquivos

Script de exemplo para mostrar como criar arquivo (s) usando scripts do PowerShell.

3 Copiando pastas

Script de exemplo para mostrar como copiar arquivo (s) usando scripts do PowerShell.

4 Copiando arquivos

Script de exemplo para mostrar como criar arquivo (s) usando scripts do PowerShell.

5 Excluindo Pastas

Script de exemplo para mostrar como excluir pasta (s) usando scripts do PowerShell.

6 Excluindo Arquivos

Script de exemplo para mostrar como excluir arquivo (s) usando scripts do PowerShell.

7 Movendo pastas

Script de exemplo para mostrar como mover pasta (s) usando scripts do PowerShell.

8 Movendo arquivos

Script de exemplo para mostrar como mover arquivo (s) usando scripts do PowerShell.

9 Renomear pastas

Script de exemplo para mostrar como renomear pasta (s) usando scripts do PowerShell.

10 Renomear arquivos

Script de exemplo para mostrar como renomear arquivo (s) usando scripts do PowerShell.

11 Recuperando Item

Script de exemplo para mostrar como recuperar item (ns) usando scripts do PowerShell.

12 Verificar existência de pasta

Script de exemplo para mostrar como verificar a existência da pasta usando scripts do PowerShell.

13 Verificar a existência do arquivo

Script de exemplo para mostrar como verificar a existência do arquivo usando scripts do PowerShell.

A seguir estão os exemplos de scripts do PowerShell em Data e Hora do Sistema.

Sr. Não. Operação e descrição
1 Obter Data do Sistema

Script de exemplo para mostrar como obter a data do sistema usando scripts do PowerShell.

2 Definir data do sistema

Script de exemplo para mostrar como definir a data do sistema usando scripts do PowerShell.

3 Obter hora do sistema

Script de exemplo para mostrar como obter a hora do sistema usando scripts do PowerShell.

4 Definir hora do sistema

Script de exemplo para mostrar como definir a hora do sistema usando scripts do PowerShell.

A seguir estão os exemplos de scripts do PowerShell para criar e ler diferentes tipos de arquivos.

Sr. Não. Operação e descrição
1 Criar arquivo de texto

Script de exemplo para mostrar como criar um arquivo de texto usando scripts do PowerShell.

2 Ler arquivo de texto

Script de exemplo para mostrar como ler um arquivo de texto usando scripts do PowerShell.

3 Criar arquivo XML

Script de exemplo para mostrar como criar um arquivo XML usando scripts do PowerShell.

4 Ler arquivo XML

Script de exemplo para mostrar como ler um arquivo XML usando scripts do PowerShell.

5 Criar arquivo CSV

Script de exemplo para mostrar como criar um arquivo CSV usando scripts do PowerShell.

6 Ler arquivo CSV

Script de exemplo para mostrar como ler um arquivo CSV usando scripts do PowerShell.

7 Criar arquivo HTML

Script de exemplo para mostrar como criar um arquivo HTML usando scripts do PowerShell.

8 Ler arquivo HTML

Script de exemplo para mostrar como ler um arquivo HTML usando scripts do PowerShell.

9 Apagando o conteúdo do arquivo

Script de exemplo para mostrar como apagar o conteúdo do arquivo usando scripts do PowerShell.

10 Anexar dados de texto

Script de exemplo para mostrar como acrescentar texto ao conteúdo de um arquivo usando scripts do PowerShell.

Cmdlets

Um cmdlet ou "Command let" é um comando leve usado no ambiente Windows PowerShell. O tempo de execução do Windows PowerShell invoca esses cmdlets no prompt de comando. Você pode criar e invocá-los programaticamente por meio de APIs do Windows PowerShell. A seguir estão exemplos de uso avançado de cmdlets.

Sr. Não. Tipo e descrição de cmdlet
1 Cmdlet Get-Unique

Programa de exemplo para mostrar o cmdlet Get-Unique.

2

Group-Object Cmdlet

Programa de exemplo para mostrar o cmdlet Group-Object.

3 Cmdlet Measure-Object

Programa de exemplo para mostrar o cmdlet Measure-Object.

4 Cmdlet Compare-Object

Programa de exemplo para mostrar o cmdlet Compare-Object.

5 Cmdlet Format-List

Programa de exemplo para mostrar o cmdlet Format-List.

6 Cmdlet de formato amplo

Programa de exemplo para mostrar cmdlet de formato amplo.

7 Cmdlet Where-Object

Programa de exemplo para mostrar o cmdlet Where-Object.

8 Cmdlet Get-ChildItem

Programa de exemplo para mostrar o cmdlet Get-ChildItem.

9 Cmdlet ForEach-Object

Programa de exemplo para mostrar o cmdlet ForEach-Object.

10 Cmdlet Start-Sleep

Programa de exemplo para mostrar o cmdlet Start-Sleep.

11 Cmdlet Read-Host

Programa de exemplo para mostrar o cmdlet Read-Host.

12 Cmdlet Select-Object

Programa de exemplo para mostrar o cmdlet Select-Object.

13 Sort-Object Cmdlet

Programa de exemplo para mostrar o cmdlet Sort-Object.

14 Cmdlet de aviso de gravação

Programa de exemplo para mostrar o cmdlet de aviso de gravação.

15 Cmdlet Write-Host

Programa de exemplo para mostrar o cmdlet Write-Host.

16 Cmdlet Invoke-Item

Programa de exemplo para mostrar o cmdlet Invoke-Item.

17 Cmdlet Invoke-Expression

Programa de exemplo para mostrar o cmdlet Invoke-Expression.

18 Cmdlet Measure-Command

Programa de exemplo para mostrar o cmdlet Measure-Command.

19 Cmdlet Invoke-History

Programa de exemplo para mostrar o cmdlet Invoke-History.

20 Cmdlet Add-History

Programa de exemplo para mostrar o cmdlet Add-History.

21 Cmdlet Get-History

Programa de exemplo para mostrar o cmdlet Get-History.

22 Cmdlet Get-Culture

Programa de exemplo para mostrar o cmdlet Get-Culture.

Windows PowerShell é um command-line shell e scripting languageprojetado especialmente para administração de sistema. Seu análogo no Linux é chamado de script Bash. Construído no .NET Framework, o Windows PowerShell ajuda os profissionais de TI a controlar e automatizar a administração do sistema operacional Windows e dos aplicativos executados no ambiente Windows Server.

Comandos do Windows PowerShell, chamados cmdlets, permitem gerenciar os computadores a partir da linha de comando. Os provedores do Windows PowerShell permitem que você acesse armazenamentos de dados, como o Registro e o Armazenamento de certificados, com a mesma facilidade com que acessa o sistema de arquivos.

Além disso, o Windows PowerShell tem um analisador de expressão sofisticado e uma linguagem de script totalmente desenvolvida. Portanto, em palavras simples, você pode concluir todas as tarefas que realiza com a GUI e muito mais. O Windows PowerShell Scripting é uma linguagem de script totalmente desenvolvida e tem um analisador de expressões rico /

Características

  • Cmdlets - Os cmdlets executam tarefas comuns de administração do sistema, por exemplo, gerenciar o registro, serviços, processos, logs de eventos e usar o Windows Management Instrumentation (WMI).

  • Task oriented - A linguagem de script do PowerShell é baseada em tarefas e fornece suporte para scripts e ferramentas de linha de comando existentes.

  • Consistent design- Como cmdlets e armazenamentos de dados de sistema usam sintaxe comum e têm convenções de nomenclatura comuns, o compartilhamento de dados é fácil. A saída de um cmdlet pode ser canalizada para outro cmdlet sem qualquer manipulação.

  • Simple to Use - A navegação simplificada e baseada em comandos permite que os usuários naveguem no registro e outros armazenamentos de dados semelhantes à navegação do sistema de arquivos.

  • Object based- PowerShell possui recursos poderosos de manipulação de objetos. Os objetos podem ser enviados para outras ferramentas ou bancos de dados diretamente.

  • Extensible interface. - O PowerShell é personalizável, pois os fornecedores de software independentes e os desenvolvedores corporativos podem criar ferramentas e utilitários personalizados usando o PowerShell para administrar seu software.

Variáveis

Variáveis ​​do PowerShell são objetos nomeados. Como o PowerShell trabalha com objetos, essas variáveis ​​são usadas para trabalhar com objetos.

Criando variável

O nome da variável deve começar com $ e pode conter caracteres alfanuméricos e sublinhados em seus nomes. Uma variável pode ser criada digitando um nome de variável válido.

Digite o seguinte comando no console PowerShell ISE. Supondo que você esteja na pasta D: \ test.

$location = Get-Location

Aqui, criamos uma variável $ location e atribuímos a ela a saída do cmdlet Get-Location. Agora contém a localização atual.

Usando variável

Digite o seguinte comando no console PowerShell ISE.

$location

Resultado

Você pode ver a saída a seguir no console do PowerShell.

Path                                                                                    
----                                                                                    
D:\test

Obtendo informações de variáveis

O cmdlet Get-Member pode informar o tipo de variável que está sendo usado. Veja o exemplo abaixo.

$location | Get-Member

Resultado

Você pode ver a saída a seguir no console do PowerShell.

TypeName: System.Management.Automation.PathInfo

Name          MemberType   Definition                                               
----          ----------   ----------                                               
Equals        Method       bool Equals(System.Object obj)                           
GetHashCode   Method       int GetHashCode()                                        
GetType       Method       type GetType()                                           
ToString      Method       string ToString()                                        
Drive         Property     System.Management.Automation.PSDriveInfo Drive {get;}    
Path          Property     System.String Path {get;}                                
Provider      Property     System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath  Property     System.String ProviderPath {get;}

PowerShell Variáveis ​​especiais armazenam informações sobre PowerShell. Também são chamadas de variáveis ​​automáticas. A seguir está a lista de variáveis ​​automáticas -

Operador Descrição
$$ Representa o último token na última linha recebido pela sessão.
$? Representa o status de execução da última operação. Ele contém TRUE se a última operação foi bem-sucedida e FALSE se ela falhou.
$ ^ Representa o primeiro token na última linha recebida pela sessão.
$ _ O mesmo que $ PSItem. Contém o objeto atual no objeto pipeline. Você pode usar essa variável em comandos que executam uma ação em cada objeto ou em objetos selecionados em um pipeline.
$ ARGS Representa uma matriz de parâmetros não declarados e / ou valores de parâmetros que são passados ​​para uma função, script ou bloco de script.
$ CONSOLEFILENAME Representa o caminho do arquivo de console (.psc1) que foi usado mais recentemente na sessão.
$ ERROR Representa uma matriz de objetos de erro que representam os erros mais recentes.
$ EVENT Representa um objeto PSEventArgs que representa o evento que está sendo processado.
$ EVENTARGS Representa um objeto que representa o primeiro argumento do evento que deriva de EventArgs do evento que está sendo processado.
$ EVENTSUBSCRIBER Representa um objeto PSEventSubscriber que representa o assinante do evento que está sendo processado.
$ EXECUTIONCONTEXT Representa um objeto EngineIntrinsics que representa o contexto de execução do host PowerShell.
$ FALSE Representa FALSE. Você pode usar esta variável para representar FALSE em comandos e scripts em vez de usar a string "false".
$ FOREACH Representa o enumerador (não os valores resultantes) de um loop ForEach. Você pode usar as propriedades e métodos de enumeradores no valor da variável $ ForEach.
$ HOME Representa o caminho completo do diretório inicial do usuário.
$ HOST Representa um objeto que representa o aplicativo host atual do PowerShell.
$ INPUT Representa um enumerador que enumera todas as entradas que são passadas para uma função.
$ LASTEXITCODE Representa o código de saída do último programa baseado no Windows que foi executado.
$ MATCHES A variável $ Matches funciona com os operadores -match e -notmatch.
$ MYINVOCATION $ MyInvocation é preenchido apenas para scripts, funções e blocos de script. As propriedades PSScriptRoot e PSCommandPath da variável automática $ MyInvocation contêm informações sobre o invocador ou o script de chamada, não o script atual.
$ NESTEDPROMPTLEVEL Representa o nível de prompt atual.
$ NULL $ null é uma variável automática que contém um valor NULL ou vazio. Você pode usar essa variável para representar um valor ausente ou indefinido em comandos e scripts.
$ PID Representa o identificador de processo (PID) do processo que está hospedando a sessão atual do PowerShell.
$ PROFILE Representa o caminho completo do perfil do PowerShell para o usuário atual e o aplicativo host atual.
$ PSCMDLET Representa um objeto que representa o cmdlet ou função avançada que está sendo executada.
$ PSCOMMANDPATH Representa o caminho completo e o nome do arquivo do script que está sendo executado.
$ PSCULTURE Representa o nome da cultura atualmente em uso no sistema operacional.
$ PSDEBUGCONTEXT Durante a depuração, esta variável contém informações sobre o ambiente de depuração. Caso contrário, ele contém um valor NULL.
$ PSHOME Representa o caminho completo do diretório de instalação do PowerShell.
$ PSITEM O mesmo que $ _. Contém o objeto atual no objeto pipeline.
$ PSSCRIPTROOT Representa o diretório a partir do qual um script está sendo executado.
$ PSSENDERINFO Representa informações sobre o usuário que iniciou a PSSession, incluindo a identidade do usuário e o fuso horário do computador de origem.
$ PSUICULTURE Representa o nome da cultura da interface do usuário (IU) que está atualmente em uso no sistema operacional.
$ PSVERSIONTABLE Representa uma tabela de hash somente leitura que exibe detalhes sobre a versão do PowerShell em execução na sessão atual.
$ SENDER Representa o objeto que gerou este evento.
$ SHELLID Representa o identificador do shell atual.
$ STACKTRACE Representa um rastreamento de pilha para o erro mais recente.
$ THIS Em um bloco de script que define uma propriedade ou método de script, a variável $ This refere-se ao objeto que está sendo estendido.
$ TRUE Representa TRUE. Você pode usar esta variável para representar TRUE em comandos e scripts.

O PowerShell fornece um rico conjunto de operadores para manipular variáveis. Podemos dividir todos os operadores do PowerShell nos seguintes grupos -

  • Operadores aritméticos
  • Operadores de atribuição
  • Operadores de comparação
  • Operadores lógicos
  • Operadores Redirecionais
  • Operadores derramados e unidos
  • Operadores de tipo
  • Operadores unários

Os operadores aritméticos

Operadores aritméticos são usados ​​em expressões matemáticas da mesma forma que são usados ​​em álgebra. A tabela a seguir lista os operadores aritméticos -

Suponha que a variável inteira A tenha 10 e a variável B tenha 20, então -

Mostrar exemplos

Operador Descrição Exemplo
+ (Adição) Adiciona valores em qualquer lado do operador. A + B dará 30
- (Subtração) Subtrai o operando direito do operando esquerdo. A - B dará -10
* (Multiplicação) Multiplica os valores em ambos os lados do operador. A * B dará 200
/ (Divisão) Divide o operando à esquerda pelo operando à direita. B / A dará 2
% (Módulo) Divide o operando esquerdo pelo operando direito e retorna o resto. B% A dará 0

Os operadores de comparação

A seguir estão os operadores de atribuição suportados pela linguagem PowerShell -

Suponha que a variável inteira A tenha 10 e a variável B tenha 20, então -

Mostrar exemplos

Operador Descrição Exemplo
eq (igual) Compara dois valores para serem iguais ou não. A -eq B dará falso
ne (diferente de) Compara dois valores para não serem iguais. A -ne B dará verdadeiro
gt (maior que) Compara o primeiro valor a ser maior que o segundo. B -gt A dará verdadeiro
ge (maior ou igual a) Compara o primeiro valor a ser maior ou igual ao segundo. B -ge A dará verdadeiro
lt (menos que) Compara o primeiro valor como menor que o segundo. B -lt A dará falso
le (menor ou igual a) Compara o primeiro valor como menor ou igual ao segundo. B -le A dará falso

Os operadores de atribuição

A seguir estão os operadores de atribuição suportados pela linguagem PowerShell -

Mostrar exemplos

Operador Descrição Exemplo
= Operador de atribuição simples. Atribui valores de operandos do lado direito para operando do lado esquerdo. C = A + B irá atribuir o valor de A + B em C
+ = Adicionar operador de atribuição AND. Ele adiciona o operando direito ao operando esquerdo e atribui o resultado ao operando esquerdo. C + = A é equivalente a C = C + A
- = Subtraia o operador de atribuição AND. Ele subtrai o operando direito do operando esquerdo e atribui o resultado ao operando esquerdo. C - = A é equivalente a C = C - A

Os operadores lógicos

A tabela a seguir lista os operadores lógicos -

Suponha que as variáveis ​​booleanas A sejam verdadeiras e a variável B sejam falsas, então -

Mostrar exemplos

Operador Descrição Exemplo
AND (lógico e) Operador lógico chamado AND. Se ambos os operandos forem diferentes de zero, a condição se torna verdadeira. (A -AND B) é falso
OU (lógico ou) Operador lógico ou chamado. Se qualquer um dos dois operandos for diferente de zero, a condição se torna verdadeira. (A -OR B) é verdade
NÃO (lógico não) Operador lógico chamado NOT. Use para reverter o estado lógico de seu operando. Se uma condição for verdadeira, o operador lógico NOT tornará falso. -NOT (A -AND B) é verdadeiro

Operadores diversos

A seguir estão vários operadores importantes suportados pela linguagem PowerShell -

Mostrar exemplos

Operador Descrição Exemplo
> (Opeator redirecionado) Operador redirecionado. Atribui a saída a ser impressa no arquivo / dispositivo de saída redirecionado. dir> test.log irá imprimir a lista de diretórios no arquivo test.log

Pode haver uma situação em que você precise executar um bloco de código várias vezes. Em geral, as instruções são executadas sequencialmente: a primeira instrução em uma função é executada primeiro, seguida pela segunda e assim por diante.

As linguagens de programação fornecem várias estruturas de controle que permitem caminhos de execução mais complicados.

UMA loop declaração nos permite executar uma declaração ou grupo de declarações várias vezes e a seguir está a forma geral de uma declaração de loop na maioria das linguagens de programação -

A linguagem de programação PowerShell fornece os seguintes tipos de loop para lidar com os requisitos de loop. Clique nos links a seguir para verificar seus detalhes.

Sr. Não. Loop e descrição
1 para loop

Execute uma sequência de instruções várias vezes e abrevia o código que gerencia a variável de loop.

2 forEach loop

Aprimorado para loop. Isso é usado principalmente para percorrer a coleção de elementos, incluindo matrizes.

3 loop while

Repete uma declaração ou grupo de declarações enquanto uma determinada condição for verdadeira. Ele testa a condição antes de executar o corpo do loop.

4 fazer ... loop while

Como uma instrução while, exceto que testa a condição no final do corpo do loop.

As estruturas de tomada de decisão têm uma ou mais condições a serem avaliadas ou testadas pelo programa, junto com uma declaração ou declarações que devem ser executadas se a condição for determinada como verdadeira e, opcionalmente, outras declarações a serem executadas se a condição for determinada ser falso.

A seguir está a forma geral de uma estrutura típica de tomada de decisão encontrada na maioria das linguagens de programação -

A linguagem de script do PowerShell fornece os seguintes tipos de declarações de tomada de decisão. Clique nos links a seguir para verificar seus detalhes.

Sr. Não. Declaração e descrição
1 declaração if

A if statement consiste em uma expressão booleana seguida por uma ou mais instruções.

2 declaração if ... else

A if statement pode ser seguido por um opcional else statement, que é executado quando a expressão booleana é falsa.

3 declaração if aninhada

Você pode usar um if ou elseif declaração dentro de outra if ou elseif afirmações).

4 declaração switch

UMA switch instrução permite que uma variável seja testada quanto à igualdade em relação a uma lista de valores.

PowerShell fornece uma estrutura de dados, o array, que armazena uma coleção sequencial de tamanho fixo de elementos de qualquer tipo. Uma matriz é usada para armazenar uma coleção de dados, mas geralmente é mais útil pensar em uma matriz como uma coleção de variáveis ​​ou objetos.

Em vez de declarar variáveis ​​individuais, como número0, número1, ... e número99, você declara uma variável de matriz, como números e usa números [0], números [1] e ..., números [99] para representar variáveis ​​individuais.

Este tutorial apresenta como declarar variáveis ​​de array, criar arrays e processar arrays usando variáveis ​​indexadas.

Declarando Variáveis ​​de Matriz

Para usar uma matriz em um programa, você deve declarar uma variável para fazer referência à matriz e pode especificar o tipo de matriz à qual a variável pode fazer referência. Aqui está a sintaxe para declarar uma variável de array -

Sintaxe

$A = 1, 2, 3, 4
or
$A = 1..4

Note- Por padrão, o tipo de objetos da matriz é System.Object. O método GetType () retorna o tipo da matriz. O tipo pode ser passado.

Exemplo

Os seguintes trechos de código são exemplos dessa sintaxe -

[int32[]]$intA = 1500,2230,3350,4000

$A = 1, 2, 3, 4
$A.getType()

Isso produzirá o seguinte resultado -

Resultado

IsPublic    IsSerial    Name                        BaseType                     
--------    --------    ----                        --------                     
True        True        Object[]                    System.Array

Os elementos da matriz são acessados ​​por meio do index. Os índices de array são baseados em 0; ou seja, eles começam de 0 aarrayRefVar.length-1.

Exemplo

A instrução a seguir declara uma variável de array, myList, cria um array de 10 elementos do tipo double e atribui sua referência a myList -

$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123

A imagem a seguir representa o array myList. Aqui, myList contém dez valores duplos e os índices vão de 0 a 9.

Processando matrizes

Ao processar elementos da matriz, costumamos usar tanto for loop ou foreach loop porque todos os elementos em uma matriz são do mesmo tipo e o tamanho da matriz é conhecido.

Exemplo

Aqui está um exemplo completo que mostra como criar, inicializar e processar matrizes -

$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123

write-host("Print all the array elements")
$myList

write-host("Get the length of array")
$myList.Length

write-host("Get Second element of array")
$myList[1]

write-host("Get partial array")
$subList = $myList[1..3]

write-host("print subList")
$subList

write-host("using for loop")
for ($i = 0; $i -le ($myList.length - 1); $i += 1) {
   $myList[$i]
}

write-host("using forEach Loop")
foreach ($element in $myList) {
   $element
}

write-host("using while Loop")
$i = 0
while($i -lt 4) {
   $myList[$i];
   $i++
}

write-host("Assign values")
$myList[1] = 10
$myList

Isso produzirá o seguinte resultado -

Resultado

Print all the array elements
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
Get the length of array
10
Get Second element of array
4.5
Get partial array
print subList
4.5
3.3
13.2
using for loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using forEach Loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using while Loop
5.6
4.5
3.3
13.2
Assign values
5.6
10
3.3
13.2
4
34.33
34
45.45
99.993
11123

Os Exemplos de Métodos de Arrays

Aqui está um exemplo completo que mostra operações em arrays usando seus métodos

$myList = @(0..4)

write-host("Print array")
$myList

$myList = @(0..4)

write-host("Assign values")
$myList[1]  = 10
$myList

Isso produzirá o seguinte resultado -

Resultado

Clear array
Print array
0
1
2
3
4
Assign values
0
10
2
3
4

Hashtable armazena pares de chave / valor em uma tabela hash. Ao usar um Hashtable, você especifica um objeto que é usado como uma chave e o valor que deseja vincular a essa chave. Geralmente usamos String ou números como chaves.

Este tutorial apresenta como declarar variáveis ​​hashtable, criar hashtables e processar hashtable usando seus métodos.

Declaração de variáveis ​​hashtable

Para usar uma tabela de hash em um programa, você deve declarar uma variável para referenciar a tabela de hash. Aqui está a sintaxe para declarar uma variável hashtable -

Sintaxe

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
or
$hash = @{}

Note- Dicionários ordenados podem ser criados usando sintaxe semelhante. Os dicionários ordenados mantêm a ordem em que as entradas são adicionadas, enquanto os hashtables não.

Exemplo

Os seguintes trechos de código são exemplos dessa sintaxe -

$hash = [ordered]@{ ID = 1; Shape = "Square"; Color = "Blue"}

Imprima a tabela de hash.

$hash

Resultado

Name                           Value    
----                           -----                                                    
ID                             1                                                        
Color                          Blue                                                     
Shape                          Square

Os valores da tabela de hash são acessados ​​por meio do keys.

> $hash["ID"]
 1

Processando Hashtable

A notação de pontos pode ser usada para acessar chaves ou valores de hashtables.

> $hash.keys
ID
Color
Shape

> $hash.values
1
Blue
Square

Exemplo

Aqui está um exemplo completo que mostra como criar, inicializar e processar hashtable -

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}

write-host("Print all hashtable keys")
$hash.keys

write-host("Print all hashtable values")
$hash.values

write-host("Get ID")
$hash["ID"]

write-host("Get Shape")
$hash.Number

write-host("print Size")
$hash.Count

write-host("Add key-value")
$hash["Updated"] = "Now"

write-host("Add key-value")
$hash.Add("Created","Now")

write-host("print Size")
$hash.Count

write-host("Remove key-value")
$hash.Remove("Updated")

write-host("print Size")
$hash.Count

write-host("sort by key")
$hash.GetEnumerator() | Sort-Object -Property key

Isso produzirá o seguinte resultado -

Resultado

Print all hashtable keys
ID
Color
Shape
Print all hashtable values
1
Blue
Square
Get ID
1
Get Shape
print Size
3
Add key-value
Add key-value
print Size
5
Remove key-value
print Size
4
sort by key

Name                           Value                                                                                                   
----                           -----                                                                                                   
Color                          Blue                                                                                                    
Created                        Now                                                                                                     
ID                             1                                                                                                       
Shape                          
Square

Uma expressão regular é uma sequência especial de caracteres que ajuda a encontrar ou encontrar outras strings ou conjuntos de strings, usando uma sintaxe especializada mantida em um padrão. Eles podem ser usados ​​para pesquisar, editar ou manipular texto e dados.

Aqui está a tabela que lista toda a sintaxe de metacaracteres de expressão regular disponível no PowerShell -

Subexpressão Partidas
^ Corresponde ao início da linha.
$ Corresponde ao final da linha.
. Corresponde a qualquer caractere único, exceto nova linha. Usandom a opção permite que ele corresponda à nova linha também.
[...] Corresponde a qualquer caractere único entre colchetes.
[^ ...] Corresponde a qualquer caractere único que não esteja entre colchetes.
\UMA Início de toda a corda.
\ z Fim de toda a string.
\ Z Fim de toda a string, exceto terminador de linha final permitido.
ré* Corresponde a 0 ou mais ocorrências da expressão anterior.
re + Corresponde a 1 ou mais do anterior.
ré? Corresponde a 0 ou 1 ocorrência da expressão anterior.
re {n} Corresponde exatamente ao número n de ocorrências da expressão anterior.
re {n,} Corresponde a n ou mais ocorrências da expressão anterior.
re {n, m} Corresponde a pelo menos n e no máximo m ocorrências da expressão anterior.
a | b Corresponde a a ou b.
(ré) Agrupa expressões regulares e lembra o texto correspondente.
(?: re) Agrupa expressões regulares sem lembrar o texto correspondente.
(?> re) Corresponde ao padrão independente sem retrocesso.
\W Corresponde aos caracteres da palavra.
\W Corresponde aos caracteres não alfabéticos.
\ s Corresponde ao espaço em branco. Equivalente a [\ t \ n \ r \ f].
\ S Corresponde ao não espaço em branco.
\ d Corresponde aos dígitos. Equivalente a [0-9].
\ D Corresponde aos não dígitos.
\UMA Corresponde ao início da string.
\ Z Corresponde ao final da string. Se houver uma nova linha, ela corresponderá imediatamente antes da nova linha.
\ z Corresponde ao final da string.
\ G Corresponde ao ponto onde a última partida terminou.
\ n Referência anterior para capturar o número do grupo "n".
\ b Corresponde aos limites da palavra fora dos colchetes. Corresponde ao backspace (0x08) quando dentro dos colchetes.
\ B Corresponde aos limites sem palavras.
\ n, \ t, etc. Corresponde a novas linhas, retornos de carro, guias, etc.
\ Q Escape (aspas) de todos os caracteres até \ E.
\ E Termina a citação iniciada com \ Q.

Aqui está um exemplo completo que mostra como usar regex no PowerShell;

Sr. Não. Correspondência e descrição
1 Corresponder personagens

Exemplo de caracteres de expressão regular suportados.

2 Corresponder classes de personagens

Exemplo de classes de personagens com suporte.

3 Quantificadores de correspondência

Exemplo de quantificadores suportados.

O operador Backtick (`) também é chamado de operador de quebra de linha. Ele permite que um comando seja escrito em várias linhas. Ele pode ser usado para nova linha (`n) ou tabulação (` t) nas frases também. Veja os exemplos abaixo -

Exemplo 1

Get-Service * | Sort-Object ServiceType `
| Format-Table Name, ServiceType, Status -AutoSize

Se tornará

Get-Service * | Sort-Object ServiceType | Format-Table Name, ServiceType, Status -AutoSize

Verifique a saída como

Name                                                   ServiceType  Status
----                                                   -----------  ------
MSSQLServerADHelper100                             Win32OwnProcess Stopped
ntrtscan                                           Win32OwnProcess Running
...

Exemplo 2

Uso de nova linha e guia.

> Write-host "Title Subtitle"
Title Subtitle

> Write-host "Title `nSubtitle"
Title 
Subtitle

> Write-host "Title `tSubtitle"
Title   Subtitle

O Powershell oferece suporte a três tipos de suportes.

  • Parenthesis brackets. − ()

  • Braces brackets. − {}

  • Square brackets. − []

Parênteses

Este tipo de colchetes é usado para

  • passar argumentos

  • inclua vários conjuntos de instruções

  • resolver ambigüidade

  • criar matriz

Exemplo

> $array = @("item1", "item2", "item3")
 
> foreach ($element in $array) { $element }
item1
item2
item3

Colchetes

Este tipo de colchetes é usado para

  • anexar declarações

  • comandos de bloco

Exemplo

$x = 10

if($x -le 20){
   write-host("This is if statement")
}

Isso produzirá o seguinte resultado -

Resultado

This is if statement.

Colchetes

Este tipo de colchetes é usado para

  • acesso ao array

  • acesso a hashtables

  • filtrar usando expressão regular

Exemplo

> $array = @("item1", "item2", "item3")
 
> for($i = 0; $i -lt $array.length; $i++){ $array[$i] }
item1
item2
item3
 
>Get-Process [r-s]*
 Handles    NPM(K)     PM(K)    WS(K)   VM(M)   CPU(s)     Id    ProcessName
-------    ------     -----     -----   -----   ------     --    -----------  
    320        72     27300     33764    227     3.95    4028    SCNotification 
   2298        77     57792     48712    308             2884    SearchIndexer
   ...

Alias ​​do PowerShell é outro nome para o cmdlet ou para qualquer elemento de comando.

Criando Alias

Usar New-Aliascmdlet para criar um alias. No exemplo a seguir, criamos uma ajuda de alias para o cmdlet Get-Help.

New-Alias -Name help -Value Get-Help

Agora invoque o alias.

help Get-WmiObject -Detailed

Você verá a seguinte saída.

NAME
   Get-WmiObject
    
SYNOPSIS
   Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes.    
    
SYNTAX
   Get-WmiObject [
...

Obtendo o Alias

Usar get-alias cmdlet para obter todos os alias presentes na sessão atual do powershell.

Get-Alias

Você verá a seguinte saída.

CommandType     Name                     Definition
-----------     ----                     ----------  
Alias           %                        ForEach-Object
Alias           ?                        Where-Object
Alias           ac                       Add-Content
Alias           asnp                     Add-PSSnapIn 
...
Impressão