Vamos aprender Windows PowerShell? – Parte I

34 Comentários

Por Rui Machado Engenheiro Software para o Pplware

Muitos serão certamente os nossos leitores, que usam Windows, mas que desconhecem a presença de uma ferramenta super poderosa que dá pelo nome de PowerShell.

O Windows PowerShell apresenta-se à comunidade como uma extensão de nós próprios ao invés de uma extensão de um Sistema Operativo ou máquina, ao permitir automatizar diversas tarefas até aqui rotineiras e maçadoras que nos faziam perder, como programadores, o focos na nossa principal tarefa, produzir Software.

powershell_00

É claro que pela descrição acima podem constatar que se trata de uma linguagem direcionada para gestão de máquinas e sistemas e as suas principais operações remetem-nos para atividades de administradores de sistemas. Apesar deste facto as potencialidades desta linguagem de scripting são enormes ao permitir interagir com classes WMI, XML, Active Directory, C# e para mim a mais poderosa de todas, a plataforma .NET.

O PowerShell está orientada a pipelines que permitem encadear lógicas de programação utilizando o output de um comando como input de outro, conseguindo assim ir muito longe em termos de cobertura de operações e eficiência de código. Desde scripts de configuração do IIS, a instalação de Software, passando por gestão de redes, a projetos de integração de sistemas e de bulk copy de dados o PowerShell automatiza tudo aquilo que possam imaginar. Importante é salientar que não se fica por execuções locais, é possível com PowerShell correr scripts remotamente e até criar sessões remotas para gerir máquinas e executar scripts.

A forma mais simples de criar estes scripts de PowerShell é utilizando a consola que vem nativamente instalada a partir do Windows 7, Windows 8 e Windows Server 2008 R2 ou recorrendo a um editor de scripts como PowerGui (http://powergui.org/index.jspa) ou o Windows PowerShell Integrated Scripting Environment (ISE), igualmente nativo com as versões do Windows acima referidas. As vantagens em utilizar um editor de scripts passam por capacidade de melhor visualização do código com cores diferentes para cada artefacto (variáveis, funções, cmdlets e comentários), rápida visualização das cmdlets PowerShell disponíveis para além da rápida capacidade de abrir, gravar e fechar scripts.

Para aceder ao PowerShell (No windows 7 e 8) basta carregar na tecla Windows + R,  e depois escrever powershell

powershell_01

Alerto ainda para o facto de que estes editores apesar de disponibilizarem inúmeras otimizações de escrita de código, continuam a chamar a consola de PowerShell para correr os scripts.

Alerto ainda para dois aspetos antes de passarmos a um exemplo prático, o PowerShell é orientado a objetos e não a texto como a linha de comandos convencional do Windows, prova disso é correr um comando do género:

“Rui Machado”.Length

image

O resultado deste comando é 11, o que significa que o PowerShell interpretou o conteúdo do que está entre aspas como um objeto do tipo System.String o que permite assim invocar os comandos desta classe. Se tentarmos correr o mesmo na linha de comandos (cmd.exe), o resultado é diferente:

image

Num próximo artigo iremos ensinar a programar alguns scripts, com o objectivo de tirar o melhor partido desta super e poderosa ferramenta. Estamos abertos a sugestões  e ideias para próximos tutoriais.

Partilhar:
Tags:

Comentários

34

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Sérgio 'Chinoman10' Rebelo
    Sérgio ‘Chinoman10’ Rebelo

    Já sabia isto tudo, mas duvido que vá dizer o mesmo da Parte 2.
    Fico então à espera,
    Obrigado!

    Cumps,
    Sérgio.

  2. Avatar de Mario Junior
    Mario Junior

    Já Já chega os usuários do Linux aqui, pra meter o pau no powershell! xD

    1. Avatar de monux
      monux

      – Preocupação desnecessária !

  3. Avatar de Abílio
    Abílio

    Esta sabia. Venha a próxima e obrigado pela iniciativa.

  4. Avatar de super
    super

    qual é a diferença entre o powershell e o cmd?

    1. Avatar de Pedro Raposo
      Pedro Raposo

      com o powershell tens todas as funcionalidades do .NET, ou seja pode usar as bibliotecas do .Net

    2. Avatar de Rui Machado

      Olá super,

      Desde logo tens a questão do cmd interpretar texto e powershell objectos, o que significa que podes interagir com os resultados dos teus comandos de acordo com o seu tipo. No artigo mostramos uma interação com um System.String. Em segundo lugar tens a quantidade de tecnologias que o PowerShell consegue interpretar (WMI, XML, C#, .NET, VB), por último aconselho-te a ver o seguinte link : http://technet.microsoft.com/en-us/scriptcenter/dd772285.aspx e perceberes por ti mesmo o que é que as cmdlets de Powershell trouxeram de novo às linguagens de scripting vocacionadas para administração de sistemas.

    3. Avatar de super
      super

      acho que fiquei esclarecido.
      obrigado.

  5. Avatar de Alucard
    Alucard

    Pela parte deste utilizador do Linux, que também usa Windows em part-time, estou curioso para aprender alguma coisa. Eu que só conheço a linha de comandos do Linux, e sei zero de MS-DOS.

    1. Avatar de nuno ferreira
      nuno ferreira

      podes sempre instalar o cgwin e usar a linha de comanhos do unix no windows

      1. Avatar de Rui Machado

        Não propriamente. Uma das coisas que devem perceber acerca do powershell e que ao permitir invocar dlls da Framework .net se torna uma extensão aos vossos servidores, sendo possível por exemplo criar uma aplicação que invoca um query sql a um servidor na india que retorna um xml, aplicar uma transformação xsl que transforma aquele xml noutro compativel com uma tabela do servidor sql em Portugal enquanto guarda os xml de entrada e saida no vosso file system. Agora coloquem uma scheduled Task a correr todos os dias no vosso PC e vejam o que acabaram de desenvolver…o vosso proprio integrador de sistemas. Não vejam o powershell so como uma lingugem de scripting para administrar maquinas, mas como uma linguagem de desenvolvimento aplicacional tambem.

        1. Avatar de João Teles
          João Teles

          Uso diariamente e partilho da mesma opinião.

        2. Avatar de Cover
          Cover

          Não se faria o mesmo com o Microsoft Biztalk mais facilmente? Pelo menos temos um IDE :X
          Lembro-me de usa-lo para fins acadêmicos, e era mesmo para isso que ele servia.

          1. Avatar de João Teles
            João Teles

            Não conheço o Biztalk, mas o Powershell também tem um ISE, se te estas a referir a um Ambiente de Desenvolvimento.

          2. Avatar de Rui Machado

            Boa noite Cover, claro que podias, mas se o teu cliente não tiver um servidor BizTalk, como justificas a licença de cerca de 3000/4000€ com o produto? Trabalhei em biztalk algum tempo e digo-te o que me disseram a mim, quando ponderamos biztalk para um cenário semelhante ao referido no meu anterior post: “vais mesmo usar uma motoserra para matar uma mosca?” muito cuidado com decisões que envolvem o vosso cliente. Devemos conhecer bem todas as alternativas para avaliar a melhor.

          3. Avatar de Cover
            Cover

            Tens razão Rui, não tinha considerado o aspecto da licença.
            Cumprimentos

    2. Avatar de Carlos Carvalho
      Carlos Carvalho

      x2 , fico a aguardar pelos próximos , muito interessante .

      Carlos Carvalho

  6. Avatar de Asdrubal
    Asdrubal

    Já tentei utilizar essa ferramenta, sempre entendi como uma espécie de linha de comandos colorida mais algumas opções, mas funcionava mal daquilo que conhecia desde o DOS e por isso desde logo o descartei. Pelo facto de estar mais orientado a linguagens de programação, vou estar mais atento ao “Vamos aprender Windows PowerShell”. Bom trabalho! 😉

  7. Avatar de Sambas31
    Sambas31

    REN Windows Debian

  8. Avatar de Olly
    Olly

    Boa iniciativa!
    Fico (ansiosamente) à espera dos artigos que se seguem.

  9. Avatar de Ricardo Silva
    Ricardo Silva

    Desde que comecei a trabalhar com o PowerShell, que cada dia que passa, fico mais surpreendido com o seu potencial.
    Pena existir poucos artigos em Português que explique bem o seu funcionamento. Vou ficar aguardar pelas próximas Partes

  10. Avatar de Maurício Alves Martins
    Maurício Alves Martins

    Massa!Acho que será muito útil;Também parabenizo a iniciativa.

    Abraços.

  11. Avatar de Maurício Alves Martins
    Maurício Alves Martins

    Massa!Acho que será muito útil;Também parabenizo a iniciativa.

    Abraços.

  12. Avatar de Rui Machado
    Rui Machado

    Ironias a parte, obrigado pela correção. Mas penso que percebem a ideia.

  13. Avatar de MACCruz
    MACCruz

    Vou seguir atentamente obrigada.

  14. Avatar de sakura
    sakura

    o windows não é diferente do linux, e são mais parecidos do que muita gente pensa….. uso a anos …..
    e pena o linux viver no passado pq se tivese um karnel de jeito e um dix11 …..
    o P.S. é um mini linux dentro do windows.

  15. Avatar de Neto
    Neto

    Venham mais!!!

  16. Avatar de joao
    joao

    muito.. muito bom!
    conheço pouco de powershell pelo fico ansiosamente a espera do proximo artigo!!!

  17. Avatar de João Campos
    João Campos

    Há algum tempo que me apercebi que dava jeito aprender esta ferramenta, antes usava batch files mas isto é que é poderoso. Profissionalmente espero que isto seja muito útil, acho que vem mesmo a calhar aprender isto.

    1. Avatar de João Teles
      João Teles

      Não tenhas dúvidas que vai dar jeito, já utilizo diariamente e não dispenso.

      1. Avatar de Ricardo Silva
        Ricardo Silva

        A alguns dias atrás necessitava de criar um mecanismo para poder sincronizar dados do Sql Server para lista de SharePoint. Em vez de andar a criar novas Dll’s para poder fazer isso, criei um script em Powershell que permitia fazer isso. Acredita poupei tempo e trabalho e ficou a funcionar impecável.

  18. Avatar de Hedner Fonseca
    Hedner Fonseca

    ola Pessoal, eu quero aprender todos os truques da Powershell, os comandos…

  19. Avatar de joao carlos
    joao carlos

    Boa tarde
    Necessitava de ajuda na elaboração de um script em powershell para alterar uma politica de grupo afecta a limitar a velocidade da internet. Alguem pode dar uma ajuda por favor?

  20. Avatar de Leandro Gouveia
    Leandro Gouveia

    Ja tem as demais explicações?? nao achei