O PowerShell é mais que um simples consola de terminal. É desenvolvida pela Microsoft o que permite fazer gestão dos seus produtos através de linhas de comandos ou de scripts.
Uma das grandes vantagens de pertencer ao Windows Management Framework (WMF) o que permite ter acesso a:
- Common Information Model (CMI);
- Component Object Model (COM);
- Framework .NET;
- Server Manager CIM Provider;
- Server Manager WMI provider;
- Software Inventory Logging (SIL);
- Windows Management Infrastructure (WMI);
- Windows PowerShell;
- Windows PowerShell Desired State Configuration (DSC);
- Windows PowerShell Integrated Scripting Environment (ISE);
- Windows PowerShell Web Services (Management OData IIS Extension);
- Windows Remote Management (WinRM).
Mas tem assim tantas vantagens?
Sim, além de podermos utilizar a framework .NET pode-se criar scripts para fazer trabalhos autónomos que podem ser executados por parâmetros o que possibilita que o script seja reutilizável e atualizável.
No PowerShell as linhas de comandos têm a denominação de cmdlets e são comandos mais complexos. Um cmdlet até pode ser um script que invoca uma chamada de API ou outros cmdlets. Pode consultar a visão geral do Cmdlet em https://msdn.microsoft.com/pt-br/library/ms714395(v=vs.85).aspx .
É importante saber que os novos cmdlets ou funcionalidades apenas estão disponíveis nas últimas versões do sistema operativo. A última versão estável do WMF é 5.1 que inclui:
- Novo cmdlets: local users and groups; Get-ComputerInfo;
- Melhorias noPowerShellGet;
- No PackageManagement foi adicionado suporte para Containers, CBS Setup, EXE-based setup, CAB;
- Melhorias no Debugging para classes PowerShell e DSC;
- Melhorias na segurança;
- Resolução de um serie de pedidos e erros reportados.
WMF 2.0 | WMF 3.0 | WMF 4.0 | WMF 5.0 | WMF 5.1 | |
Windows XP | SIM | NÃO | NÃO | NÃO | NÃO |
Windows Server 2003 | SIM | NÃO | NÃO | NÃO | NÃO |
Windows Vista | SIM | NÃO | NÃO | NÃO | NÃO |
Windows 7 SP1 | SIM | SIM | SIM | SIM | SIM |
Windows Server 2008 SP2 | SIM |
SIM
(Expecto IA64) | NÃO | NÃO | NÃO |
Windows Server 2008 R2 SP1 | SIM |
SIM
(Expecto IA64) | SIM | SIM | SIM |
Windows 8 | SIM | SIM | SIM | SIM | SIM |
Windows 8.1 | SIM | SIM | SIM | SIM | SIM |
Windows Server 2012 SP1 | SIM | SIM | SIM | SIM | SIM |
Windows Server 2012 R2 | SIM | SIM | SIM | SIM | SIM |
Windows 10 | SIM | SIM | SIM | SIM | SIM |
Windows Server 2016 | SIM | SIM | SIM | SIM | SIM |
A partir de 18 de agosto de 2016 o Windows PowerShell passou a ser Open-Source o que significa que pode-se correr em MacOS e algumas distribuições Linux. A equipa do PowerShell está a utilizar o GitHub o que permite que qualquer um possa contribuir com o projeto em https://github.com/powershell .
Galeria do PowerShell
A Galeria do PowerShell é o repositório central do conteúdo do PowerShell. Estão presentes novos comandos do PowerShell ou Desired State Configuration (DSC).
Antes de iniciar é necessário registar-se em https://www.powershellgallery.com/ com uma conta Microsoft que vai ser utilizada para publicação.
Ao aceder a sua conta pode verificar que tem chave API e é esta chave que é utilizada para submissão.
Criação do Script
Antes de iniciar o script é necessário criar o bloco que inclui as informações do script com o cmdlet ‘New-ScriptFileInfo’. O bloco vai conter a versão, GUID que é gerado automaticamente, autor, informações requeridas e dependências do script.
Testar o script
O cmdlet ‘Test-ScriptFileInfo’ verifica o bloco de comentário se tiver um erro vai informar onde está localizado ou como corrigi-lo.
Como pode verificar na imagem não foi apresentado nenhum erro e pode ser enviado. A seguinte imagem tem um erro propositado em que uma variável está mal definida e não pode ser enviado até o erro ser corrigido.
Publicação do script
Com o script testado já pode publica-lo para publicar necessita da chave API que pode consultar na sua conta. Para publicar utilize o cmnlet Publish-Script.
Publish-Script -Path <localização do script> -NuGetApiKey <chave API>
Uma regra importante é que o nome do script tem de ser único se tentar publicar um script com a mesma identificação vai retornar um erro e é obrigado a mudar nome do script.
Gerir o script na galeria
Na sua conta em ‘Manage my Items’ consegue gerir todos os módulos ou scripts submetidos.
Pode editar o conteúdo do script.
A galeria também da hipótese de apagar o script mas ainda não é suportado pela galeria o que pode fazer é retirar o script das pesquisas.
Com a publicação bem-sucedida o script é visível e pesquisável na Galeria Web vem como no PowerShell. A galeria da hipótese de gravar o script sem instalar com o cmldet ‘Save-Script’. Se alguém pretender instalar pode utilizar o cmdlet ‘Install-Script’.
Não existe restrição para publicação mas tem de ter atenção que o script ou modulo que pretende publicar não contenha nenhuma informação sensível como por exemplo logins, palavras passes, chaves para ligações a bases de dados.
Mesmo que o script tenha passado nos teste é sempre importante rever e testar o script antes de publicar. Se for possível faça noutra máquina.