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.

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.
Passo 2) A janela do PowerShell รฉ aberta.
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
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
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*"
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
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:
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.
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โ.
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.
Passo 2) Execute os comandos abaixo.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- Entrar
Yna tela de confirmaรงรฃo. Get-ExecutionPolicy
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.
No PowerShell, execute o script com o seguinte comando:
& "X:\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.
Recrie o script anterior no ISE:
- Cole o cรณdigo no editor.
- Salve o script.
- Pressione F5 para executar.
- Observe a saรญda no painel do console.
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
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.
















