Quantcast

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
  1. SR
    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. MJ
    Mario Junior

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

    1. MO
      monux

      – Preocupação desnecessária !

  3. AB
    Abílio

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

  4. SU
    super

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

    1. PR
      Pedro Raposo

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

    2. RM

      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. SU
      super

      acho que fiquei esclarecido.
      obrigado.

  5. AL
    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. NF
      nuno ferreira

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

      1. RM

        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. JT
          João Teles

          Uso diariamente e partilho da mesma opinião.

        2. CO
          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. JT
            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. RM

            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. CO
            Cover

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

    2. CC
      Carlos Carvalho

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

      Carlos Carvalho

  6. AS
    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. SA
    Sambas31

    REN Windows Debian

  8. OL
    Olly

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

  9. RS
    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. MM
    Maurício Alves Martins

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

    Abraços.

  11. MM
    Maurício Alves Martins

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

    Abraços.

  12. RM
    Rui Machado

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

  13. MA
    MACCruz

    Vou seguir atentamente obrigada.

  14. SA
    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. NE
    Neto

    Venham mais!!!

  16. JO
    joao

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

  17. JC
    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. JT
      João Teles

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

      1. RS
        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. HF
    Hedner Fonseca

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

  19. JC
    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. LG
    Leandro Gouveia

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

Deixe um comentário