Vamos aprender Windows PowerShell? – Parte I
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.
É 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
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
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:
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.
Este artigo tem mais de um ano
Já sabia isto tudo, mas duvido que vá dizer o mesmo da Parte 2.
Fico então à espera,
Obrigado!
Cumps,
Sérgio.
Já Já chega os usuários do Linux aqui, pra meter o pau no powershell! xD
– Preocupação desnecessária !
Esta sabia. Venha a próxima e obrigado pela iniciativa.
qual é a diferença entre o powershell e o cmd?
com o powershell tens todas as funcionalidades do .NET, ou seja pode usar as bibliotecas do .Net
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.
acho que fiquei esclarecido.
obrigado.
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.
podes sempre instalar o cgwin e usar a linha de comanhos do unix no windows
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.
Uso diariamente e partilho da mesma opinião.
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.
Não conheço o Biztalk, mas o Powershell também tem um ISE, se te estas a referir a um Ambiente de Desenvolvimento.
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.
Tens razão Rui, não tinha considerado o aspecto da licença.
Cumprimentos
x2 , fico a aguardar pelos próximos , muito interessante .
Carlos Carvalho
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! 😉
REN Windows Debian
Boa iniciativa!
Fico (ansiosamente) à espera dos artigos que se seguem.
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
Massa!Acho que será muito útil;Também parabenizo a iniciativa.
Abraços.
Massa!Acho que será muito útil;Também parabenizo a iniciativa.
Abraços.
Ironias a parte, obrigado pela correção. Mas penso que percebem a ideia.
Vou seguir atentamente obrigada.
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.
Venham mais!!!
muito.. muito bom!
conheço pouco de powershell pelo fico ansiosamente a espera do proximo artigo!!!
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.
Não tenhas dúvidas que vai dar jeito, já utilizo diariamente e não dispenso.
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.
ola Pessoal, eu quero aprender todos os truques da Powershell, os comandos…
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?
Ja tem as demais explicações?? nao achei