Powershell: Como automatizar a busca de uma solução

Ivo Dias
3 min readJan 17, 2021

É muito comum quando nos deparamos com um erro, buscar uma solução pesquisando no Google, então porque não integramos isso ao nosso código?

Naturalmente, existem casos em que isso não vai ser muito pratico, mas pela ciência, vamos pensar em como poderíamos fazer isso.

No Powershell, podemos utilizar uma estrutura muito conhecida para filtragem de erros no mundo do desenvolvimento de software, o famoso “Try-Catch”. Com ele, colocamos tudo o que queremos fazer dentro do bloco “Try” e em caso de falha nele, somos automaticamente direcionados para as instruções no bloco “Catch”.

Para escrever nossa ideia, vamos pensar num algoritmo bem simples, uma função que recebe como parâmetro a mensagem de erro capturada no Bloco Catch e joga-a na pesquisa do Google. Para fazer isso, precisamos de três coisas: saber como escrever uma função com parâmetros, saber como pegar a mensagem de erro e saber como pesquisar via URL.

Eu realmente gosto de exemplos práticos, e acredito que exemplos de códigos nos ajudam a entender melhor, então vamos representar essa ideia dessa forma:

Começamos declarando nossa função e a lista de parâmetros que queremos receber. A sintaxe para isso vai ser:

Podemos ter quantos parâmetros quanto quisermos, mas o ideal é que não sejam muitos, para facilitar o uso. É possível criar funções mais complexas, com validação de parâmetros necessários, entretanto, não é a ideia desse artigo.
Com nossa função criada, vamos executar um pequeno teste, e para isso vamos provocar um erro. Optei pela instrução Set-ADUser, pois ela precisa de algumas configurações para ser utilizada e mesmo que tenha ela configurada, passamos como parâmetro um numero aleatório para forçar o erro.

Quando um erro ocorre, o seu retorno ou sua mensagem de erro, fica armazenada na variável “$_.Exception.Message”, por isso, passamos ela como parâmetro da função, já que queremos pesquisar exatamente essa mensagem no Google.

Para pesquisar no Google por meio de uma URL, podemos usar o termo que queremos dessa forma:

https://www.google.com/search?q=”termo de pesquisa”

Quando rodamos o código, essa pagina é aberta:

Como não tenho o modulo para gerenciar o AD instalado, o comando não é reconhecido, conforme a mensagem pesquisada. O inconveniente dessa automação, é a cada erro termos uma nova aba do navegador aberta com a pesquisa (o que pode ser um super problema se nosso código tiver muito erros haha).

Mas talvez pesquisar no Google não seja tão efetivo, porque não fazemos isso no Stack Overflow? Um fórum famoso no mundo de TI.

Isso pode nos ajudar a encontrar mais rapidamente a resposta correta para o nosso problema.

Para fazermos isso, usamos a mesma estrutura e logica de antes, só modificamos a forma que vamos pesquisar a mensagem, mas felizmente, é muito parecido em ambos os casos, sendo apenas necessário trocar a URL para:

https://stackoverflow.com/search?q=”termo de pesquisa”

Como ficaria isso no código e qual o retorno?

Ok, talvez para duvidas em português sobre Powershell, o Stack não seja o melhor portal, mas essa ideia pode ser aproveitada em outras linguagens.

Espero que esses exemplos possam ajudar de alguma forma.

--

--

Ivo Dias

MCC, MSLA and Microsoft Community Moderator. Currently work with DevOps and write articles about automation, IT support and script development