O objetivo desse artigo é explicar e exemplificar, o desenvolvimento de uma interface gráfica para scripts em Powershell, utilizando recursos da linguagem. Para o exemplo, vamos desenvolver um script para fazer o desbloqueio de uma conta no AD.
Conceitos principais para a interface
Para simplificar, vamos utilizar o termo GUI em vez de interface gráfica, essa sigla significa em português, interface de usuário gráfica. Para fazê-la, vamos precisar criar um formulário dentro do Powershell, e esse formulário, vamos considerar um item.
A forma de declarar os itens, é bem parecida, independente de qual seja:
$item = New-Object
System.Windows.Forms.ITEM
Essa expressão, vai gerar um novo item, e armazena-lo em uma variável, que utilizaremos para passar as características dele, como tamanho, localização ou texto.
Para exemplificar, vamos criar uma label, com o texto “Minha primeira label”, posicionada no canto esquerdo da tela e chamada lblExemplo. Em código, escrevemos assim:
$lblExemplo = New-Object
System.Windows.Forms.Label # Cria a label
$lblExemplo.Text = " Minha primeira label"
# Define um texto para ela
$lblExemplo.Location = New-Object
System.Drawing.Point(0,10) # Define em qual coordenada da tela vai ser desenhado
Depois de cria-la, adicionamos ao formulário principal, chamado GUI, para ser desenhada junto com ele:
$GUI.Controls.Add($lblExemplo) # Adiciona ao formulário principal
Projeto de exemplo
Nessa publicação da galeria, temos um projeto de exemplo, em que fazemos uma interface gráfica para um script de desbloqueio de conta. Nele, criamos os componentes:
- Formulário — Que representa a interface em si
- Label do texto junto com uma caixa de texto — Para recebermos do utilizador o valor do usuário que vai ser desbloqueado
- Label de resposta — Para exibirmos o retorno do comando
- Label de erro — Para exibir, em caso de erro, a mensagem dele
- Botão — Para fazer o desbloqueio da conta ao clicar nele
Para fazer o script funcionar, vamos receber uma credencial de administrador, importar o modulo do AD e com o valor informado na caixa de texto, ao clicar com o botão, utilizar o comando de desbloqueio de conta, retornado na label, se funcionou ou não.
Link de download do projeto:
https://gallery.technet.microsoft.com/Interface-Grfica-com-ef51da91