16 de março de 2017

Como publicar o seu script Windows PowerShell na galeria pública do PowerShell

PowerShell Logo
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.
Compatibilidade do WMF



WMF 2.0WMF 3.0WMF 4.0WMF 5.0WMF 5.1
Windows XP SIMNÃONÃONÃONÃO
Windows Server 2003SIMNÃONÃONÃONÃO
Windows VistaSIMNÃONÃONÃONÃO
Windows 7 SP1SIMSIMSIMSIMSIM
Windows Server 2008 SP2SIM
SIM
(Expecto IA64)
NÃONÃONÃO
Windows Server 2008 R2 SP1SIM
SIM
(Expecto IA64)
SIMSIMSIM
Windows 8SIMSIMSIMSIMSIM
Windows 8.1SIMSIMSIMSIMSIM
Windows Server 2012 SP1SIMSIMSIMSIMSIM
Windows Server 2012 R2SIMSIMSIMSIMSIM
Windows 10SIMSIMSIMSIMSIM
Windows Server 2016SIMSIMSIMSIMSIM


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.

PowerShell Gallery Login



Ao aceder a sua conta pode verificar que tem chave API e é esta chave que é utilizada para submissão.
 
PowerShell Gallery - My Account


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.

Se já tem um script criado adicione o corpo do PSScriptInfo no início do script.

cmdlet New-ScriptFileInfo

 
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.

 
cmdlet Test-ScriptFileInfo


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. 


cmnlet Publish-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. 

14 de março de 2017

WebCast Microsoft Windows Server 2016: O sistema operativo Cloud-ready

No próximo 16 de Março de 2017 pode participar no Webcast “Microsoft Windows Server 2016: O sistema operativo Cloud-ready” entre as 16:00 – 18:00 WET através do Rumos Live Traning com o formador Pedro Ferreira Pereira.


Este webcast tem como objetivo abordar as novidades do Windows Server 2016, assim como o percurso de exames de certificação para atingir o MCSA: Windows Server 2016. 
  • Introdução aos exames para atingir a certificação MCSA: Windows Server 2016.
  • Novas funcionalidades do Windows Server 2016.
Pode-se inscrever aqui: https://www.eventbrite.pt/e/bilhetes-microsoft-windows-server-2016-o-sistema-operativo-cloud-ready-31228289655 .

 O idioma do Webcast vai ser em Português.

Sobre o Webcast 
O Webcast são realizados pelas as empresas do Grupo Rumos , Rumo, Galileu, Flag, Profitecla, Escola Digital Rumos, Escola Professional Braga e Escola Professional Ruiz Costa. 

Custo 
É totalmente gratuito apenas tem que registar no webcast que é utilizado o Eventbrite. Pode consultar os eventos anteriores aqui: https://www.eventbrite.pt/o/rumos-s-a-7582499537?past=1 e visualizar os vídeos em http://www.livetraining.pt/arquivo.html

Plataforma 
O webcast do grupo utiliza a plataforma Adobe web conferencing mais conhecido por Adobe Connect a sua utilização não é complicada. Apenas necessita de entrar na sala e fazer o teste de verificação e compatibilidade no seu computador. Para garantir que vai conseguir ver o sinal de vídeo e imagem.


Pode-se fazer todas as questões ao orador e falar com outros participantes que estão presentes.



Qualidade de vídeo e áudio
Todo depende do upload do orador. Infelizmente não utilizam uma ligação a parte para os Webcast . No ultimo webcast que assisti que foi “Be a Game Developer” o upload deles era tão mau que a ligação estava sempre a cair, a voz sempre a falhar e não era possível acompanhar com o orador. Por vezes o orador não dava conta que a voz não estava a ser transmitida e perde-se uma grande parte do webcast. 



Mesmo que não consiga visualizar o webcast até ao fim por norma recebe um e-mail com  um endereço de Internet que permite visualizar a a gravação do webcast e também poderá receber um voucher de desconto. 

Se pretende saber mais sobre os webcast do grupo rumos visite em a página oficial em www.livetraining.pt.