Geek School: Aprenda a automatizar o Windows com o PowerShell

Índice:

Geek School: Aprenda a automatizar o Windows com o PowerShell
Geek School: Aprenda a automatizar o Windows com o PowerShell

Vídeo: Geek School: Aprenda a automatizar o Windows com o PowerShell

Vídeo: Geek School: Aprenda a automatizar o Windows com o PowerShell
Vídeo: FINALMENTE! NOVO iOS 17 CHEGOU - QUAIS SÃO AS NOVIDADES - YouTube 2024, Maio
Anonim
Nesta edição da Geek School, estaremos ajudando você a entender a poderosa linguagem de script do PowerShell que é integrada ao Windows e é extremamente útil para se conhecer em um ambiente de TI.
Nesta edição da Geek School, estaremos ajudando você a entender a poderosa linguagem de script do PowerShell que é integrada ao Windows e é extremamente útil para se conhecer em um ambiente de TI.

Embora esta série não esteja estruturada em torno de um exame, o aprendizado do PowerShell é uma das coisas mais importantes que você pode fazer como administrador de rede, portanto, se há uma coisa que você quer aprender para ajudar na carreira de TI, é isso. Além disso, é muito divertido.

Introdução

O PowerShell é a ferramenta de automação mais poderosa que a Microsoft tem para oferecer, e é uma linguagem shell e de script.

Observe que esta série é baseada no PowerShell 3, fornecido com o Windows 8 e o Server 2012. Se você estiver executando o Windows 7, faça o download da atualização do PowerShell 3 antes de continuar.

Conheça o Console e o ISE

Há duas maneiras de interagir com o PowerShell, o Console e o Ambiente de Scripts Integrados - também conhecido como ISE. O ISE melhorou muito da versão hedionda que acompanha o PowerShell 2 e pode ser aberta pressionando a combinação de teclado Win + R para exibir uma caixa de execução, digitando powershell_ise e pressionando Enter.

Como você pode ver, o ISE exibe uma visualização dividida para que você possa rapidamente criar scripts enquanto ainda consegue ver o resultado na metade inferior do ISE. A metade inferior do ISE, onde os resultados do seu script são impressos, também pode ser usada como um prompt do REPL - muito parecido com o prompt de comando. A v3 ISE finalmente adicionou suporte ao intellisense tanto no painel de script quanto no console interativo.
Como você pode ver, o ISE exibe uma visualização dividida para que você possa rapidamente criar scripts enquanto ainda consegue ver o resultado na metade inferior do ISE. A metade inferior do ISE, onde os resultados do seu script são impressos, também pode ser usada como um prompt do REPL - muito parecido com o prompt de comando. A v3 ISE finalmente adicionou suporte ao intellisense tanto no painel de script quanto no console interativo.
Image
Image
Como alternativa, você pode interagir com o PowerShell usando o Console do PowerShell, que é o que eu usarei para a maioria desta série. O Console do PowerShell se comporta de maneira muito semelhante ao prompt de comando - basta digitar comandos e os resultados são exibidos. Para abrir o Console do Windows PowerShell, pressione novamente a combinação de teclado Win + R para abrir uma caixa de execução, digite powershell e pressione Enter.
Como alternativa, você pode interagir com o PowerShell usando o Console do PowerShell, que é o que eu usarei para a maioria desta série. O Console do PowerShell se comporta de maneira muito semelhante ao prompt de comando - basta digitar comandos e os resultados são exibidos. Para abrir o Console do Windows PowerShell, pressione novamente a combinação de teclado Win + R para abrir uma caixa de execução, digite powershell e pressione Enter.
Image
Image

REPL solicita que isso seja incrível para gratificação instantânea: você insere um comando e obtém resultados. Embora o console não ofereça o intellisense, ele oferece algo chamado conclusão de tabulação, que funciona praticamente da mesma maneira - basta começar a digitar um comando e pressionar a guia para percorrer possíveis correspondências.

Image
Image
Image
Image

Usando o sistema de ajuda

Nas versões anteriores do PowerShell, os arquivos de ajuda foram incluídos quando você instalou o Windows. Esta foi uma boa solução para a maior parte, mas nos deixou com um problema significativo. Quando a equipe de ajuda do PowerShell precisou parar de trabalhar nos arquivos de ajuda, os desenvolvedores do PowerShell ainda estavam ocupados codificando e fazendo alterações. Isso significa que, quando o PowerShell foi enviado, os arquivos de ajuda estavam incorretos porque não tinham as alterações mais recentes feitas no código. Para resolver esse problema, o PowerShell 3 não oferece arquivos de ajuda e inclui um sistema de ajuda atualizável. Isso significa que antes de fazer qualquer coisa, você desejará baixar os arquivos de ajuda mais recentes. Você pode fazer isso abrindo um Console do PowerShell e executando:

Update-Help

Image
Image
Parabéns pela execução do seu primeiro comando do PowerShell! A verdade é que o comando Update-Help tem muito mais opções do que simplesmente executá-lo e, para vê-las, queremos ver a ajuda do comando. Para ver a ajuda de um comando, simplesmente passe o nome do comando com o qual deseja ajuda para o parâmetro Name do comando Get-Help, por exemplo:
Parabéns pela execução do seu primeiro comando do PowerShell! A verdade é que o comando Update-Help tem muito mais opções do que simplesmente executá-lo e, para vê-las, queremos ver a ajuda do comando. Para ver a ajuda de um comando, simplesmente passe o nome do comando com o qual deseja ajuda para o parâmetro Name do comando Get-Help, por exemplo:

Get-Help –Name Update-Help

Você provavelmente está se perguntando como interpretar todo esse texto de qualquer maneira, quero dizer, por que existem duas muitas informações na seção de sintaxe e por que há tantos colchetes em todo o lugar? Primeiras coisas primeiro: a razão pela qual existem dois blocos de informações na seção de sintaxe é porque eles representam diferentes maneiras de executar o comando. Eles são tecnicamente chamados de conjuntos de parâmetros e você só pode usar um de cada vez (não é possível misturar parâmetros de conjuntos diferentes). Na captura de tela acima, você pode ver que o primeiro conjunto de parâmetros tem um parâmetro SourcePath enquanto a parte inferior não. O motivo é que você usaria o conjunto de parâmetros superior (aquele que inclui o SourcePath) se estivesse atualizando seus arquivos de ajuda de outra máquina em sua rede que já os tenha baixado, enquanto você não precisaria especificar um caminho de origem se você só queria pegar os arquivos mais recentes da Microsoft.
Você provavelmente está se perguntando como interpretar todo esse texto de qualquer maneira, quero dizer, por que existem duas muitas informações na seção de sintaxe e por que há tantos colchetes em todo o lugar? Primeiras coisas primeiro: a razão pela qual existem dois blocos de informações na seção de sintaxe é porque eles representam diferentes maneiras de executar o comando. Eles são tecnicamente chamados de conjuntos de parâmetros e você só pode usar um de cada vez (não é possível misturar parâmetros de conjuntos diferentes). Na captura de tela acima, você pode ver que o primeiro conjunto de parâmetros tem um parâmetro SourcePath enquanto a parte inferior não. O motivo é que você usaria o conjunto de parâmetros superior (aquele que inclui o SourcePath) se estivesse atualizando seus arquivos de ajuda de outra máquina em sua rede que já os tenha baixado, enquanto você não precisaria especificar um caminho de origem se você só queria pegar os arquivos mais recentes da Microsoft.

Para responder a segunda pergunta, há uma certa sintaxe que ajuda os arquivos a seguir e aqui está:

  • Colchetes ao redor de um nome de parâmetro e seu tipo significa que é um parâmetro opcional e o comando funcionará bem sem ele.
  • Colchetes ao redor do nome dos parâmetros significa que os parâmetros são um parâmetro posicional.
  • A coisa à direita de um parâmetro nos colchetes indica o tipo de dados que o parâmetro está esperando.

Embora você deva aprender a ler a sintaxe do arquivo de ajuda, se você não tiver certeza sobre um parâmetro em particular, basta anexar - Cheio ao final do comando get help e vá até a seção de parâmetros, onde ele informará um pouco mais sobre cada um deles. parâmetro.

Get-Help –Name Update-Help –Full

A última coisa que você precisa saber sobre o sistema de ajuda é como usá-lo para descobrir comandos, o que na verdade é muito fácil. Você vê, o PowerShell aceita curingas em praticamente qualquer lugar, portanto, usá-los junto com o comando Get-Help permite que você descubra facilmente comandos. Por exemplo, estou procurando comandos que lidam com o Windows Services:
A última coisa que você precisa saber sobre o sistema de ajuda é como usá-lo para descobrir comandos, o que na verdade é muito fácil. Você vê, o PowerShell aceita curingas em praticamente qualquer lugar, portanto, usá-los junto com o comando Get-Help permite que você descubra facilmente comandos. Por exemplo, estou procurando comandos que lidam com o Windows Services:

Get-Help –Name *service*

Claro, todas essas informações podem não ser úteis, mas confie em mim, aproveite o tempo e aprenda como usar o sistema de ajuda. Ele vem a calhar o tempo todo, até mesmo para os criadores de scripts avançados que fazem isso há anos.
Claro, todas essas informações podem não ser úteis, mas confie em mim, aproveite o tempo e aprenda como usar o sistema de ajuda. Ele vem a calhar o tempo todo, até mesmo para os criadores de scripts avançados que fazem isso há anos.

Segurança

Esta não seria uma introdução adequada sem mencionar a segurança. A maior preocupação para a equipe do PowerShell é que o PowerShell se torne o mais recente e melhor ponto de ataque para as crianças de script. Eles implementaram algumas medidas de segurança para garantir que isso não aconteça, então vamos dar uma olhada nelas.

A forma mais básica de proteção vem do fato de que a extensão de arquivo PS1 (a extensão usada para denotar um script do PowerShell) não está registrada em um host do PowerShell, na verdade, está registrada no Bloco de Notas. Isso significa que, se você clicar duas vezes em um arquivo, ele será aberto com o bloco de notas em vez de ser executado.

Em segundo lugar, você não pode executar scripts a partir do shell apenas digitando o nome do script, você tem que especificar o caminho completo para o script. Então, se você quisesse executar um script em sua unidade C, teria que digitar:

C:

unme.ps1

Ou se você já estiver na raiz da unidade C, poderá usar o seguinte:

unme.ps1

Por fim, o PowerShell tem algo chamado Políticas de Execução, que impedem que você execute qualquer script antigo. Na verdade, por padrão, você não pode executar nenhum script e precisa alterar sua política de execução para poder executá-los. Existem 4 Políticas de Execução notáveis:

  • Restrito: Esta é a configuração padrão no PowerShell. Essa configuração significa que nenhum script pode ser executado, independentemente de sua assinatura. A única coisa que pode ser executada no PowerShell com essa configuração é um comando individual.
  • AllSigned: Essa configuração permite que scripts sejam executados no PowerShell. O script deve ter uma assinatura digital associada de um editor confiável. Haverá um aviso antes de você executar os scripts de editores confiáveis.
  • RemoteSigned: Essa configuração permite que os scripts sejam executados, mas exige que o script e os arquivos de configuração baixados da Internet tenham uma assinatura digital associada de um editor confiável. Os scripts executados no computador local não precisam ser assinados. Não há prompts antes de executar o script.
  • Irrestrito: Isso permite que scripts não assinados sejam executados, incluindo todos os scripts e arquivos de configuração baixados da Internet. Isso incluirá arquivos do Outlook e do Messenger. O risco aqui é executar scripts sem qualquer assinatura ou segurança. Nós recomeçamos que você nunca usa essa configuração.

Para ver qual é a sua Política de Execução atual, abra um Console do PowerShell e digite:

Get-ExecutionPolicy

Para este curso e a maioria das outras circunstâncias, a Política RemoteSigned é a melhor, então vá em frente e altere sua política usando o seguinte.
Para este curso e a maioria das outras circunstâncias, a Política RemoteSigned é a melhor, então vá em frente e altere sua política usando o seguinte.

Nota: Isso precisará ser feito a partir de um Console do PowerShell elevado.

Set-ExecutionPolicy RemoteSigned

Isso é tudo para esse pessoal do tempo, até amanhã para mais alguma diversão com o PowerShell.
Isso é tudo para esse pessoal do tempo, até amanhã para mais alguma diversão com o PowerShell.

Isenção de responsabilidade: o termo apropriado para um comando do PowerShell é um cmdlet e, a partir de agora, usaremos essa terminologia correta. Apenas pareceu mais apropriado chamá-los de comandos para esta introdução.

Se você tiver alguma dúvida, pode enviar um tweet para mim @taybgibb ou apenas deixar um comentário.

Recomendado: