Quando se trata de executar comandos no Windows, o PowerShell se tornou um ás no buraco. Durante anos, os entusiastas ficaram limitados aos limites da linha de comando do Windows, mas em 2006, o PowerShell surgiu como uma alternativa poderosa.
O que é o PowerShell?
O PowerShell é um aplicativo interativo Interface da Linha de comando (CLI) e mecanismo de automação desenvolvido pela Microsoft para ajudar a projetar configurações do sistema e automatizar tarefas administrativas. Essa ferramenta possui sua própria linha de comando com uma linguagem de programação exclusiva semelhante ao Perl. Inicialmente, o PowerShell foi projetado para gerenciar objetos nos computadores dos usuários.
Hoje, o PowerShell oferece aos usuários um ambiente extenso onde eles podem executar e automatizar tarefas de gerenciamento do sistema. O usuário pode acessar recursos do Active Directory para o Exchange Server através de um programa. Em sua essência, o PowerShell permite que o usuário acesse:
- Prompt de comando
- Comandos do PowerShell
- .API do .NET Framework
- Instrumentação de Gerenciamento do Windows
- Modelo de Objeto Componente do Windows
Como o PowerShell se tornou um aplicativo de código aberto, os usuários baseados em Linux e Unix agora podem acessar esta plataforma versátil. O PowerShell’s é usado principalmente para ajudar os usuários a automatizar tarefas administrativas. Em vez de executar tarefas tediosas e repetitivas, o usuário pode simplesmente criar scripts e emitir comandos, e o PowerShell irá concluí-los automaticamente. O usuário pode personalizar centenas de comandos, chamados cmdlets.
Comandos do PowerShell
Aqui estão 25 comandos básicos do PowerShell:
Defina localização | cd, chdir, sl | Define o local de trabalho atual para um local especificado. |
Obter conteudo | gato, tipo | Obtém o conteúdo do item no local especificado. |
Adicionar conteúdo | ac | Adiciona conteúdo aos itens especificados, como adicionar palavras a um arquivo. |
Set-Content | sc | Grava ou substitui o conteúdo em um item por novo conteúdo. |
Copiar item | cópia, cp, cpi | Copia um item de um local para outro. |
Remover item | del, apagar, rd, ri, rm, rmdir | Exclui os itens especificados. |
Move-Item | mi, mover, mv | Move um item de um local para outro. |
Set-Item | si | Altera o valor de um item para o valor especificado no comando. |
Novo item | ni | Cria um novo item. |
Start-Job | sajb | Inicia um trabalho em segundo plano do Windows PowerShell. |
Comparar objeto | comparar, dif | Compara dois conjuntos de objetos. |
Objeto de grupo | grupo | Agrupa objetos que contêm o mesmo valor para propriedades especificadas. |
Invoke-WebRequest | enrolar, iwr, wget | Obtém conteúdo de uma página da Web na Internet. |
Objeto de medida | a medida | Calcula as propriedades numéricas dos objetos e os caracteres, palavras e linhas nos objetos de sequência, como arquivos… |
Caminho da resolução | rvpa | Resolve os caracteres curinga em um caminho e exibe o conteúdo do caminho. |
Resume-Job | rujb | Reinicia um trabalho suspenso |
Set-Variable | conjunto, sv | Define o valor de uma variável. Cria a variável se uma com o nome solicitado não existir. |
Comando Show | shcm | Cria comandos do Windows PowerShell em uma janela de comando gráfica. |
Objeto de classificação | ordenar | Classifica objetos por valores de propriedade. |
Começar serviço | sasv | Inicia um ou mais serviços parados. |
Processo inicial | seiva, começar | Inicia um ou mais processos no computador local. |
Suspend-Job | sujb | Interrompe temporariamente trabalhos de fluxo de trabalho. |
Wait-Job | wjb | Suprime o prompt de comando até que um ou todos os trabalhos em segundo plano do Windows PowerShell em execução na sessão sejam… |
Where-Object | ?, Onde | Seleciona objetos de uma coleção com base em seus valores de propriedade. |
Saída de gravação | eco, escreva | Envia os objetos especificados para o próximo comando no pipeline. Se o comando for o último comando no pipeline,… |
Aqui está nossa versão em PDF da Folha de dicas do PowerShell. Clique na imagem abaixo para abrir o PDF em uma guia separada do navegador que você pode salvar e usar como referência rápida.
Folha de dicas do PowerShell (PDF)
Como usar o PowerShell
O PowerShell é ideal para administradores corporativos que executam operações de gerenciamento complexas em grandes redes corporativas. Em vez de agrupar informações sobre centenas de servidores e serviços diferentes manualmente (o que levaria muito tempo), você pode simplesmente executar um script no PowerShell para fornecer automaticamente informações de volta para você.
De um modo geral, o PowerShell é mais benéfico para usuários com experiência anterior com linhas de comando. Para usar o PowerShell, você pode executar uma variedade de cmdlets, scripts, executáveis e classes .NET. Para os fins deste artigo, vamos nos concentrar principalmente em cmdlets e scripts para ajudar você a entender os fundamentos.
A Udemy possui vários cursos com a melhor classificação no PowerShell que você pode achar úteis.
PowerShell vs Prompt de Comando
Para muitos usuários, o PowerShell é uma alternativa melhor ao prompt de comando. A razão é que ele simplesmente tem mais potência. Uma das maiores diferenças é que o PowerShell usa cmdlets em vez de comandos. Os cmdlets colocam o gerenciamento de registro e a Instrumentação de Gerenciamento do Windows ao alcance administrativo dos usuários. Por outro lado, o prompt de comando está confinado a comandos muito mais simples.
Há algum cruzamento na sintaxe entre as duas plataformas, pois o PowerShell aceita alguns comandos do prompt de comando, como ipconfigtocd. No entanto, eles são conhecidos como aliases, em vez de cmdlets. Outra diferença importante é que o PowerShell está centrado nos objetos. Cada parte dos dados de um cmdlet é um objeto e não um texto. Isso facilita para o usuário navegar por dados complexos. A inclusão da estrutura .NET também permite que os scripts do PowerShell usem interfaces .NET. Em resumo, o PowerShell é um prompt de comando em esteróides.
Carregando o PowerShell
Antes de nos aprofundarmos no básico do uso do PowerShell, você primeiro precisa acessar a interface principal. Se você é um usuário do Windows 10, já terá acesso ao PowerShell 5. Os usuários do Windows 8-8.1 terão acesso ao PowerShell 4, mas se você estiver no Windows 7, precisará instalá-lo em um .NET estrutura. Em todos os sistemas operacionais, o PowerShell oferece duas interfaces distintas.
O mais avançado é o Integrated Scripting Environment, que atua como uma GUI abrangente para usuários experientes. A alternativa básica é o console do PowerShell, que fornece uma linha de comando para o usuário inserir seus comandos. Os iniciantes são aconselhados a ficar com o último até aprenderem os fundamentos do PowerShell.
Para iniciar o PowerShell no Windows 10, você precisa ser um administrador. Faça login como administrador, clique em Começar, e role pelos aplicativos até localizar Windows PowerShell. Clique com o botão direito e selecione Executar como administrador. No Windows 8.1, basta procurar o PowerShell no seu Sistema pasta. Da mesma forma, no Windows 7, o diretório padrão do PowerShell é o Acessórios pasta depois de instalar o programa.
Como executar cmdlets
Em suma, um cmdlet é um comando de função única. Você insere cmdlets na linha de comando da mesma maneira que faria com um comando ou utilitário tradicional. Os cmdlets são a principal maneira de interagir com a CLI. No PowerShell, a maioria dos cmdlets é escrita em C # e composta de instruções projetadas para executar uma função que retorna um objeto .NET.
Mais de 200 cmdlets podem ser usados no PowerShell. O prompt de comando do Windows PowerShell não diferencia maiúsculas de minúsculas; portanto, esses comandos podem ser digitados em maiúsculas ou minúsculas. Os principais cmdlets estão listados abaixo:
- Get-Location – Obtenha o diretório atual
- Defina localização – Obtenha o diretório atual
- Mover-item – Mover um arquivo para um novo local
- Copiar item – Copie um arquivo para um novo local
- Renomear – item Renomear um arquivo existente
- Novo item – Crie um novo arquivo
Para obter uma lista completa dos comandos disponíveis, use o cmdlet Get-Command. Na linha de comando, você digitaria o seguinte:
PS C: \> Get-Command
É importante observar que a Microsoft impede que os usuários usem cmdlets personalizados do PowerShell em suas configurações padrão. Para usar os cmdlets do PowerShell, você precisa alterar o ExecutionPolicy a partir de Restrito para RemoteSigned. Assinado remotamente permitirá que você execute seus próprios scripts, mas interromperá scripts não assinados de outros usuários.
Para alterar sua diretiva de execução, digite o seguinte comando do PowerShell:
PS C: \> Set-ExecutionPolicy
Para mudar para RemoteSigned, digite o seguinte comando:
PS C: \> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Verifique se você está em uma conta de administrador para ter permissão para definir uma nova política de execução.
Como executar scripts
Os processos e comandos baseados em script fazem parte da base da versatilidade do PowerShell. No PowerShell, um script é essencialmente um arquivo de texto com uma extensão ps1 em seu nome de arquivo. Para criar um novo script, você pode simplesmente abrir o bloco de notas do Windows, digitar seus comandos e salvar com “.ps1” no final do nome.
Para executar um script, digite sua pasta e nome do arquivo na janela do PowerShell:
PS c: \ powershell \ mynewscript.ps1
Depois de fazer isso, o script selecionado será executado.
Procurando criar seus próprios scripts do PowerShell? Quase 5k alunos fizeram este curso da Udemy sobre scripts avançados com o PowerShell.
Sobreposição com comandos do Windows
Quando você é novato no PowerShell, pode parecer esmagador tentar aprender uma nova biblioteca de comandos. No entanto, o que a maioria dos novos usuários não percebe é que a sintaxe usada na linha de comando do Windows se sobrepõe ao PowerShell. Isso é facilitado pelo fato de o PowerShell não fazer distinção entre maiúsculas e minúsculas.
Assim como no prompt de comando, no PowerShell o comando cd ainda altera os diretórios e o dir ainda fornece uma lista de arquivos na pasta selecionada. Como tal, é importante lembrar que você não está necessariamente começando do zero. Incorporar isso ajudará a diminuir a curva de aprendizado que você enfrenta ao usar o PowerShell e a diminuir o número de novos comandos que você precisa aprender.
Dito isso, é importante observar que esses comandos não são considerados completos no PowerShell, mas sim aliases (o nome do Powershell para os comandos do prompt de comando do Windows). Portanto, mesmo que você possa experimentar alguns dos comandos do Prompt de Comando no PowerShell, deve aprender o máximo possível sobre os novos. No entanto, a experiência do prompt de comando pode definitivamente ajudar os novos usuários a se familiarizarem com o PowerShell e chegarem ao chão.
Fazendo backup de um banco de dados SQL
Muitas pessoas usam o PowerShell para fazer backup de bancos de dados SQL. A interface da linha de comandos pode realizar backups completos do banco de dados, backups de arquivos e backups de log de transações. Existem várias maneiras de fazer backup de um banco de dados no PowerShell, mas uma das mais simples é usar o comando Backup-SqlDatabase. Por exemplo:
PS C: \> Backup-SqlDatabase -ServerINstance “Computer \ Instance” -Database “Databasecentral”
Isso criará um backup de um banco de dados com o nome “Databasecentral” (ou o nome do banco de dados escolhido “.
Para fazer backup de um log de transações, insira:
PS C: \> Backup-SqlDatabase -ServerInstance “Computer \ Instance” -Database “Databasecentral” -BackupAction Log
Isso criará um log de transações do banco de dados selecionado.
Comandos essenciais do PowerShell
O uso de aliases apenas o levará até o PowerShell, por isso é importante comprometer-se a aprender tudo o que puder sobre os comandos nativos do PowerShell. Abordamos alguns deles acima, mas vamos detalhar os principais com muito mais detalhes abaixo.
Obter ajuda
Este comando deve estar no topo de qualquer lista de novos usuários quando se trata do PowerShell. O comando Get-Help pode ser usado para obter literalmente ajuda com qualquer outro comando do PowerShell. Por exemplo, se você sabe o nome de um comando, mas não sabe o que faz ou como usá-lo, o comando Get-Help fornece a sintaxe completa do comando.
Por exemplo, se você quiser ver como o Get-Process funciona, digite:
PS C: \> Get-Help -Name Get-ProcessPS C: \> Set-ExecutionPolicy
Conforme abordado anteriormente neste guia, a Microsoft possui uma política de execução restrita que impede a criação de scripts no PowerShell, a menos que você a altere. Ao definir a política de execução, você tem quatro opções para escolher:
- Restrito – A política de execução padrão que impede a execução de scripts.
- Todos assinados – Executará scripts se eles forem assinados por um editor confiável
- Assinado remotamente – Permite executar scripts criados localmente
- Irrestrito – Uma política sem restrições na execução de scripts
PS C: \> Get-ExecutionPolicy
Se você estiver usando o PowerShell, talvez nem sempre trabalhe em um servidor que você esteja familiarizado. Executando o comando Política Get-Execution permitirá que você veja qual política está ativa no servidor antes de executar um novo script. Se você vir o servidor em questão operando sob uma política restrita, poderá implementar o Set-ExecutionPolicy comando para alterá-lo.
Get-Service
Um dos comandos mais importantes é o Get-Service, que fornece ao usuário uma lista de todos os serviços instalados no sistema, em execução e parados. Esse cmdlet pode ser direcionado usando nomes ou objetos de serviço específicos.
Por exemplo, se você digitar PS C: \> Get-Service, você verá uma lista de todos os serviços em seu computador, seus status e nomes de exibição.
Para usar este comando para recuperar serviços específicos, digite: PS C: \ Get-Service “WMI *” para recuperar todos os serviços que começam com WMI.
Se você deseja restringir a saída a serviços ativos no seu computador, insira o seguinte comando:
PS C: \ Serviço de obtenção | Where-Object {$ _. Status -eq “Running”}
ConvertTo-HTML
Ao usar o PowerShell, convém gerar um relatório sobre as informações que você viu. Uma das melhores maneiras de fazer isso é usar o ConvertTo-HTML comando. Esse cmdlet permite criar relatórios com tabelas e cores, o que pode ajudar a visualizar dados complexos. Basta escolher um objeto e adicioná-lo ao comando. Por exemplo, você pode digitar:
Get-PSDrive | ConvertTo-Html
Isso retorna uma grande quantidade de informações, portanto, é uma boa ideia limitá-las a um arquivo com o comando Out-File. Um comando alternativo melhor é:
Unidade Get-PSD | ConvertTo-Html | Arquivo de saída -FilePath PSDrives.html
Isso irá gerar um arquivo HTML no formato de tabela. Por exemplo:
Você pode adicionar suas próprias cores e bordas para refinar sua apresentação.
Export-CSV (e Get-Service)
Não menos importante para aumentar a visibilidade é o comando Export-CSV. Ele permite exportar dados do PowerShell para um arquivo CSV. Essencialmente, esse comando cria um arquivo CSV compilando todos os objetos que você selecionou no PowerShell. Cada objeto tem sua própria linha ou linha no arquivo CSV. Este comando é usado principalmente para criar planilhas e compartilhar dados com programas externos.
Para usar este comando, digite:
PS C: \> Get-Service | CSV de exportação c: \ service.csv
É importante lembrar de não formatar objetos antes de executar o comando Export-CSV. Isso ocorre porque a formatação dos objetos resulta apenas na colocação das propriedades formatadas no arquivo CSV, e não nos próprios objetos originais. Caso deseje enviar propriedades específicas de um objeto para um arquivo CSV, você usaria o Selecionar objeto cmdlet.
Para usar o Selecionar objeto cmdlet, digite:
PS C: \> Get-Service | Nome do objeto de seleção, status | CSV de exportação c: \ Service.csv
Get-Process
Se você deseja visualizar todos os processos atualmente em execução no seu sistema, o Get-Process comando é muito importante. Para obter uma lista de todos os processos ativos no seu computador, digite:
PS C: \ Processo de obtenção
Observe que, se você não especificar nenhum parâmetro, obterá um detalhamento de todos os processos ativos no seu computador. Para selecionar um processo específico, reduza os resultados por nome ou ID do processo e combine-o com o Format-List cmdlet, que exibe todas as propriedades disponíveis. Por exemplo:
Janela PS C: \ Get-Processrd, explorer | Lista de formato *
Isso fornece uma supervisão abrangente de todos os processos ativos.
Get-EventLog
Se você quiser acessar os logs de eventos do seu computador (ou logs em computadores remotos) enquanto estiver usando o PowerShell, precisará do Get-EventLog comando. Esse cmdlet funciona apenas em logs de eventos clássicos, portanto, você precisará do Get-WinEvent comando para logs posteriores ao Windows Vista.
Para executar o comando do log de eventos, digite:
PS C: \> Get-EventLog -List
Isso mostrará todos os logs de eventos no seu computador.
Um dos motivos mais comuns pelos quais os usuários consultam os logs de eventos é ver erros. Se você deseja ver eventos de erro no seu log, basta digitar:
PS C: \> Erro Get-EventLog -LogName System -EntryType
Se você deseja obter logs de eventos de vários computadores, especifique quais dispositivos deseja exibir (listados abaixo como “Servidor1” e “Servidor2”). Por exemplo:
PS C: \> Get-EventLog – Nome do log “Windows PowerShell” – Nome do computador “computador local”, “Servidor1”, “Servidor2”.
Os parâmetros que você pode usar para pesquisar logs de eventos incluem:
- Depois de – O usuário especifica uma data e hora e o cmdlet localizará os eventos que ocorreram após
- AsBaseObject – Fornece um System.Diagnostics.EventLogEntry para cada evento
- Como corda – Retorna a saída como strings
- Antes – O usuário especifica uma data e hora e o cmdlet localizará os eventos que ocorreram antes
- Nome do computador – Usado para se referir a um computador remoto
- EntryType – Especifica o tipo de entrada de eventos (erro, auditoria de falha, auditoria de sucesso, informações, aviso)
- Índice – Especifica valores de índice dos quais o cmdlet localiza eventos
- Lista – Fornece uma lista de logs de eventos
- Nome do usuário – Especifica nomes de usuários associados a um determinado evento
Stop-Process
Ao usar o PowerShell, não é incomum experimentar um processo de congelamento. Sempre que isso acontece, você pode usar Get-Process recuperar o nome do processo com dificuldades e, em seguida, pará-lo com o Stop-Process comando. Geralmente, você encerra um processo por seu nome. Por exemplo:
PS C: \> Stop-Process -Name “notepad”
Neste exemplo, o usuário encerrou o Bloco de Notas usando o comando Stop-Process.
PowerShell: uma poderosa interface de linha de comando
Embora a transição para o PowerShell possa parecer bastante complexa, sua interface de linha de comando opera da mesma forma que qualquer outra. Pode ter seus próprios cmdlets exclusivos, mas diversos recursos online podem ajudá-lo com qualquer tarefa administrativa em que você possa pensar. Para tirar o máximo proveito do PowerShell, basta se acostumar com a multiplicidade de comandos disponíveis..
Como novo usuário, é fácil ficar assustado com os mais de 200 cmdlets do PowerShell. Certifique-se de começar com a interface da linha de comandos antes de passar para a GUI completa. Independentemente de você ser novo no PowerShell ou nas interfaces de linha de comando, mais do que suficiente informação está disponível online para ajudá-lo a aproveitar ao máximo esta ferramenta poderosa.
O PowerShell é uma ferramenta poderosa para executar comandos no Windows. Com sua própria linha de comando e linguagem de programação exclusiva, o PowerShell permite que os usuários acessem recursos do Active Directory para o Exchange Server e automatizem tarefas administrativas. Além disso, como o PowerShell se tornou um aplicativo de código aberto, os usuários baseados em Linux e Unix agora podem acessar esta plataforma versátil. Com centenas de comandos personalizáveis, chamados cmdlets, o PowerShell é uma poderosa interface de linha de comando para gerenciar objetos nos computadores dos usuários.