Tutorial Powershell para iniciantes

โšก Resumo Inteligente

O PowerShell Scripting รฉ um mecanismo de automaรงรฃo orientado a objetos construรญdo sobre a estrutura .NET. Ele combina cmdlets, scripts e uma linguagem de script para ajudar os administradores de TI a automatizar tarefas. Windows, gerenciar serviรงos e conectar mรกquinas remotas a partir de uma รบnica linha de comando.

  • ๐Ÿš€ Inicie o shell correto: Abra o PowerShell ou o PowerShell ISE no menu Iniciar e execute-o como Administrador quando precisar de privilรฉgios elevados.
  • ๐Ÿงฉ Use cmdlets, nรฃo comandos de texto: Os cmdlets seguem um padrรฃo de nomenclatura verbo-substantivo e retornam objetos .NET, de modo que a saรญda pode fluir para o prรณximo cmdlet por meio de um pipeline.
  • ๐Ÿ” Defina a polรญtica de execuรงรฃo com cuidado: Use o cmdlet Set-ExecutionPolicy com o RemoteSigned para equilibrar seguranรงa e conveniรชncia ao executar scripts .ps1.
  • ๐Ÿ“ Escreva scripts .ps1 reutilizรกveis: Combine cmdlets, variรกveis โ€‹โ€‹e pipelines em um arquivo de texto com a extensรฃo .ps1 para automatizar tarefas administrativas repetitivas.
  • ๐Ÿค– Combine o PowerShell com IA: Assistentes de IA transformam solicitaรงรตes em linguagem simples em scripts do PowerShell prontos para serem executados e explicam cmdlets desconhecidos linha por linha.

Tutorial Powershell para iniciantes

O que รฉ PowerShell?

Windows PowerShell รฉ um mecanismo de automaรงรฃo orientado a objetos e uma linguagem de script. Foi projetado para profissionais de TI e administradores de sistemas que precisam controlar e automatizar a administraรงรฃo de Windows e outros aplicativos. O PowerShell amplia os conceitos aprendidos em Windows Prompt de comando e Windows Script Host com novos objetos, cmdlets e um poderoso pipeline.

Ele combina a flexibilidade de scripts, a velocidade da linha de comando e a abrangรชncia de uma ferramenta administrativa com interface grรกfica. Com ele, os administradores podem resolver problemas de forma eficiente e eliminar horas de trabalho manual. Este tutorial aborda os conceitos essenciais para vocรช aprender PowerShell do zero.

Por que usar o PowerShell?

Os principais motivos para usar o PowerShell sรฃo:

  • Oferece uma experiรชncia de linha de comando bem integrada ao sistema operacional.
  • Fornece acesso completo a todos os tipos no framework .NET.
  • Utilizado por administradores de sistemas em diversas empresas.
  • Permite manipular componentes de servidor e estaรงรฃo de trabalho com poucas linhas de cรณdigo.
  • Projetado para administradores de sistemas, com uma sintaxe clara de verbo-substantivo.
  • Mais seguro do que correr VBScript ou outras linguagens de script legadas.

Histรณria do PowerShell

O PowerShell 1.0 foi lanรงado pela primeira vez em 2006. Atualmente, o PowerShell estรก na versรฃo 7.2 e posteriores. Com o lanรงamento de novas versรตes, suas capacidades e ambientes de hospedagem cresceram significativamente.

Histรณrico de versรตes do PowerShell:

  • PowerShell1.0 โ€” apoiou a administraรงรฃo local de Windows Servidor 2003.
  • PowerShell2.0 โ€” integrado com Windows 7 e Windows Servidor 2008 R2. Adicionados recursos de acesso remoto, transaรงรตes, tarefas em segundo plano, eventos e depuraรงรฃo.
  • PowerShell3.0 โ€” enviado com Windows 8 e Windows Servidor 2012 como parte do Windows Framework de gerenciamento. Adicionadas tarefas agendadas, conectividade de sessรฃo e carregamento automรกtico de mรณdulos.
  • PowerShell4.0 โ€” enviado com Windows 8.1 e Windows Server 2012 R2. Adicionada a Configuraรงรฃo de Estado Desejado, depuraรงรฃo aprimorada e diagnรณsticos de rede.
  • PowerShell5.0 โ€” parte de Windows Framework de Gerenciamento 5. Adicionou depuraรงรฃo remota, definiรงรตes de classe e enumeraรงรตes .NET.
  • PowerShell7.2 โ€” Desenvolvido em .NET 6.0. Adiciona novos operadores, visualizaรงรตes de erros dinรขmicas e notificaรงรตes automรกticas de versรฃo.

Funcionalidades do PowerShell

  • PowerShell Remoting: Invocar scripts e cmdlets em uma mรกquina remota.
  • Empregos de apoio: Executar scripts ou pipelines de forma assรญncrona na mรกquina local ou em vรกrias mรกquinas remotas.
  • Transaรงรตes: Permitir que cmdlets e desenvolvedores executem operaรงรตes agrupadas que podem ser confirmadas ou revertidas em conjunto.
  • CCE: Ouvir, antecipar e agir de acordo com eventos de gestรฃo e do sistema.
  • Transferรชncia de arquivos em rede: Suporte nativo para transferรชncia de arquivos priorizada, assรญncrona e com controle de velocidade entre mรกquinas atravรฉs do Serviรงo de Transferรชncia Inteligente em Segundo Plano (BITS).

Como iniciar o PowerShell

O PowerShell vem prรฉ-instalado em todas as versรตes recentes de WindowsExecute-o da seguinte forma.

Passo 1) Procure pelo PowerShell em WindowsEm seguida, selecione e clique.

Inicie o PowerShell

Passo 2) A janela do PowerShell รฉ aberta.

Janela PowerShell

Cmdlet vs. Comando

A cmdlet (pronuncia-se "command-let") รฉ um comando leve usado no ambiente PowerShell. O PowerShell invoca cmdlets no prompt, e vocรช pode criar os seus prรณprios usando as APIs do PowerShell. Os cmdlets diferem dos comandos tradicionais do shell das seguintes maneiras:

  • Os cmdlets sรฃo Framework .NET Objetos de classe; eles nรฃo podem ser executados como executรกveis โ€‹โ€‹independentes.
  • Os cmdlets podem ser escritos com apenas uma dรบzia de linhas de cรณdigo.
  • A anรกlise sintรกtica, a formataรงรฃo da saรญda e a apresentaรงรฃo de erros sรฃo gerenciadas pelo ambiente de execuรงรฃo, e nรฃo pelo prรณprio cmdlet.
  • Os cmdlets funcionam com objetos, portanto, fluxos de texto e objetos podem ambos fluir pelos pipelines.
  • Os cmdlets sรฃo baseados em registros e processam um รบnico objeto por vez.

A maior parte da funcionalidade do PowerShell รฉ fornecida por meio de cmdlets, que sempre usam um padrรฃo de nomenclatura verbo-substantivo (sempre no singular). Os cmdlets retornam objetos, nรฃo texto. escrita โ€” diferente de um cmdlet โ€” รฉ uma sรฉrie de comandos armazenados em um arquivo de texto com o .ps1 extensรฃo.

Os verbos comuns que vocรช usarรก para aprender PowerShell incluem:

  • BAIXE โ€” recuperar algo.
  • Comeรงar โ€” execute alguma coisa.
  • โ€” produzir alguma coisa.
  • Dรช um basta โ€” parar algo que estรก em execuรงรฃo.
  • Conjunto โ€” definir algo.
  • New โ€” criar algo.

Comandos importantes do PowerShell

Obter ajuda: Veja a ajuda para comandos e tรณpicos do PowerShell.

Exemplo: exibir ajuda para o Format-Table comando.

Get-Help Format-Table

cmdlet Get-Help

Obter comando: Obtenha informaรงรตes sobre qualquer coisa que possa ser invocada.

Exemplo: gerar uma lista de cmdlets e funรงรตes instaladas na mรกquina.

Get-Command

cmdlet Get-Command

Obter serviรงo: Encontra todos os serviรงos na mรกquina.

Exemplo: obtenha todos os serviรงos cujo nome comeรงa com โ€œvmโ€.

Get-Service "vm*"

cmdlet Get-Service

Obter membro: Mostrar o que pode ser feito com um objeto.

Exemplo: listar os membros dos serviรงos de mรกquina virtual retornados por Get-Service.

Get-Service "vm*" | Get-Member

cmdlet Get-Member

Outros cmdlets รบteis:

  • Get-Module โ€” Exibir pacotes de comandos instalados.
  • Get-Content โ€” ler um arquivo e processar seu conteรบdo.
  • Get-* curinga โ€” lista todos os cmdlets que comeรงam com โ€œGet-โ€œ.

Exemplo: criar uma pasta.

New-Item -Path 'X:\Guru99' -ItemType Directory

Saรญda:

Saรญda de novo item

Tipos de dados do PowerShell

O PowerShell oferece suporte aos tipos de dados padrรฃo do .NET, permitindo que vocรช armazene qualquer valor de forma organizada em uma variรกvel.

Tipos de dados do PowerShell

Variรกveis โ€‹โ€‹Especiais

O PowerShell expรตe diversas variรกveis โ€‹โ€‹especiais internas. As mais รบteis estรฃo listadas abaixo.

Variรกvel Especial Descriรงรฃo
$Erro Uma matriz de objetos de erro representando os erros mais recentes.
$Hospedeiro Exibe o nome do aplicativo de hospedagem atual.
$Perfil Armazena o caminho completo do perfil do usuรกrio para o shell padrรฃo.
$ PID Armazena o identificador do processo.
$PSUICultura Contรฉm o nome da cultura de interface do usuรกrio atual.
$NULO Contรฉm um valor vazio ou nulo.
$Falso Contรฉm o valor booleano FALSE.
$Verdadeiro Contรฉm o valor booleano VERDADEIRO.

Scripts do PowerShell

Os scripts do PowerShell sรฃo armazenados em .ps1 Por padrรฃo, nรฃo รฉ possรญvel executar um script clicando duas vezes nele โ€” essa medida de seguranรงa protege o sistema contra danos acidentais. Para executar um script, clique com o botรฃo direito do mouse sobre ele e escolha โ€œExecutar com o PowerShellโ€.

Executar com o PowerShell

Uma polรญtica de execuรงรฃo controla quais scripts tรชm permissรฃo para serem executados. Veja a polรญtica atual com Get-ExecutionPolicyOs valores possรญveis incluem:

  • Restrito โ€” Nenhum script รฉ permitido. Esta รฉ a configuraรงรฃo padrรฃo.
  • Tudo assinado โ€” Somente scripts assinados por um desenvolvedor confiรกvel podem ser executados, e cada um deles requer confirmaรงรฃo.
  • Assinado Remoto โ€” seus prรณprios scripts sรฃo executados, alรฉm de scripts assinados de fontes confiรกveis.
  • sem restriรงรตes โ€” Qualquer script pode ser executado (use com moderaรงรฃo).

Passos para alterar a polรญtica de execuรงรฃo:

Passo 1) Abra um prompt do PowerShell com privilรฉgios elevados clicando com o botรฃo direito do mouse no PowerShell e selecionando Executar como Administrador.

Execute o PowerShell como administrador.

Passo 2) Execute os comandos abaixo.

  1. Get-ExecutionPolicy
  2. Set-ExecutionPolicy Unrestricted
  3. Entrar Y na tela de confirmaรงรฃo.
  4. Get-ExecutionPolicy

Alterar polรญtica de execuรงรฃo

Primeiro script do PowerShell

Abra o Bloco de Notas e digite:

Write-Host "Hello, Guru99!"

Salve o arquivo com um .ps1 extensรฃo โ€” por exemplo, FirstScript.ps1.

Salvar FirstScript.ps1

No PowerShell, execute o script com o seguinte comando:

& "X:\FirstScript.ps1"

Execute o FirstScript.ps1

O que รฉ PowerShell ISE?

O Windows Ambiente de script integrado do PowerShell (ISE) O ISE รฉ o editor padrรฃo do PowerShell. Nele, vocรช pode executar comandos, escrever testes e depurar scripts em um ambiente grรกfico baseado em janelas. Ele oferece suporte ร  ediรงรฃo de vรกrias linhas, coloraรงรฃo de sintaxe, preenchimento automรกtico com a tecla Tab, execuรงรฃo seletiva e muito mais.

O PowerShell ISE tambรฉm oferece um painel de console que executa comandos diretamente, enquanto painรฉis laterais exibem o cรณdigo-fonte dos seus scripts e quaisquer ferramentas conectadas ao ISE. Vocรช pode abrir vรกrias janelas de script simultaneamente โ€” o que รฉ รบtil para depurar scripts que dependem de funรงรตes definidas em outros scripts ou mรณdulos.

PowerShell ISE

Recrie o script anterior no ISE:

  1. Cole o cรณdigo no editor.
  2. Salve o script.
  3. Pressione F5 para executar.
  4. Observe a saรญda no painel do console.

Executar script no ISE

Amostra 2: O seguinte script exibe gratuitamente memรณria virtual na mรกquina.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory

Script gratuito de memรณria virtual

PowerShell Concepts

Os seguintes conceitos formam o vocabulรกrio do trabalho diรกrio com PowerShell.

O Conceito Descriรงรฃo
Cmdlets Comandos integrados escritos em linguagens .NET, como VB ou C#. Os desenvolvedores ampliam o conjunto carregando ou escrevendo snap-ins do PowerShell.
Funรงรตes Comandos escritos diretamente na linguagem PowerShell, sem a necessidade de uma IDE como... Visual Studio.
Scripts Arquivos de texto no disco com o .ps1 extensรฃo.
Aplicaรงรตes Existente Windows programas invocados a partir do shell.
E se Indica ao cmdlet para nรฃo ser executado, mas sim para descrever o que aconteceria se fosse executado.
Confirmar Instrui o cmdlet a solicitar confirmaรงรฃo antes de executar.
Verboso Fornece um nรญvel mais elevado de detalhamento operacional.
depurar Instrui o cmdlet a emitir informaรงรตes de depuraรงรฃo.
Aรงรฃo de erro Define o que o cmdlet faz em caso de erro. Valores permitidos: continue, stop, silentlycontinue, inquire.
Variรกvel de erro Indica a variรกvel que armazena informaรงรตes de erro.
Variรกvel externa Indica ao cmdlet para armazenar sua saรญda em uma variรกvel especรญfica.
Buffer Armazena um nรบmero especรญfico de objetos antes de enviรก-los pelo pipeline.

Vantagens de usar scripts do PowerShell

  • Os scripts do PowerShell sรฃo poderosos e concisos โ€” vocรช pode realizar muito em apenas algumas linhas.
  • As variรกveis โ€‹โ€‹sรฃo declaradas com o $<variable> sintaxe.
  • As variรกveis โ€‹โ€‹podem armazenar a saรญda de comandos, objetos e valores primitivos.
  • Nรฃo รฉ necessรกrio especificar explicitamente o tipo da variรกvel.

PowerShell vs. Prompt de Comando

PowerShell Prompt de comando
Profundamente integrado com WindowsOferece uma linha de comando interativa e uma linguagem de script completa. Interface de linha de comando padrรฃo fornecida por MicrosoftUm aplicativo Win32 simples que se comunica com outros objetos Win32.
Utiliza cmdlets que podem ser invocados interativamente ou por meio de scripts de automaรงรฃo. Sem cmdlets.
Trata a saรญda como objetos para que ela possa fluir para outro cmdlet atravรฉs do pipeline. A saรญda รฉ um fluxo de texto simples, nรฃo objetos.
Avanรงado em funcionalidades, capacidades e arquitetura interna. Interface bรกsica, adequada para tarefas em lote legadas.

Aplicaรงรตes do PowerShell

O PowerShell tornou-se a escolha padrรฃo para administradores de TI porque reduz drasticamente o esforรงo em grandes redes corporativas. Imagine gerenciar mais de quatrocentos servidores e implementar uma nova soluรงรฃo de seguranรงa que depende de um serviรงo especรญfico em execuรงรฃo em cada host.

Fazer login manualmente em cada servidor รฉ lento e propenso a erros. Um รบnico script do PowerShell pode inspecionar todos os servidores em minutos, informar quais hosts jรก executam o serviรงo e atรฉ mesmo habilitรก-lo nos demais. O script captura a intenรงรฃo uma รบnica vez e a aplica de forma confiรกvel em toda a infraestrutura.

Perguntas Frequentes

O PowerShell automatiza Windows Administraรงรฃo de sistemas โ€” gerenciamento de serviรงos, arquivos, usuรกrios e servidores โ€” por meio de uma linha de comando orientada a objetos e uma linguagem de script construรญda sobre a estrutura .NET.

Um cmdlet รฉ um objeto de classe .NET leve que usa um nome verbo-substantivo e retorna objetos. Um comando tradicional em outros shells gera texto simples e lida com sua prรณpria anรกlise e formataรงรฃo.

O PowerShell trabalha com objetos e oferece suporte a cmdlets, scripts e integraรงรฃo profunda com o .NET. O Prompt de Comando รฉ um shell bรกsico baseado em texto, cujos comandos geram texto simples em vez de objetos.

Um arquivo .ps1 รฉ um script do PowerShell โ€” um arquivo de texto que contรฉm um ou mais comandos do PowerShell. Por padrรฃo, ele nรฃo pode ser executado clicando duas vezes; ele รฉ executado a partir do console ou com a opรงรฃo "Executar com o PowerShell".

Abra o PowerShell como administrador e execute o comando Set-ExecutionPolicy com um valor como RemoteSigned ou Unrestricted e confirme. Em seguida, use o comando Get-ExecutionPolicy para verificar a configuraรงรฃo atual.

O Ambiente de Script Integrado (ISE) รฉ o editor de GUI integrado do PowerShell para escrever, executar, testar e depurar scripts, com recursos como coloraรงรฃo de sintaxe, preenchimento automรกtico com a tecla Tab e vรกrias abas de script.

Os assistentes de IA sugerem cmdlets, explicam o comportamento de scripts e detectam erros enquanto vocรช digita. Eles ajudam os administradores a automatizar tarefas mais rapidamente e a converter solicitaรงรตes em linguagem natural em comandos PowerShell funcionais.

Sim. Os assistentes de cรณdigo com IA geram scripts PowerShell completos a partir de uma descriรงรฃo em linguagem simples, como "listar todos os serviรงos interrompidos e reiniciรก-los", e explicam cada cmdlet para que vocรช possa revisar antes de executar.

Resuma esta postagem com: