Configurando Analisador de Práticas Recomendadas (BPA) no Powershell - Best Practices Analyzer


Cenário: A rotina do administrador deve possuir a tarefa de utilizar as Práticas Recomendas sempre que possível. A sua utilização será desenvolvido através do Powershell para o uso futuro em Scripts e por ser a única forma de inserir parâmetros ao BPA (Best Practices Analyzer).

As Práticas Recomendadas possibilitam alto desempenho, alta confiabilidade, diminuição dos riscos de segurança, diminuição de conflitos inesperados ou outros possíveis problemas.

O BPA (Analisador de Praticas Recomendadas) está disponível desde o Windows Server 2008 R2 mais foi a partir do Windows Server 2012 que ele obteve além das atualizações, muito mais opções.
  • Varredura de uma ou mais Funções de uma vez;
  • Varredura em um ou mais Servidores de uma vez;
  • Utilize no Gerenciador do Servidor (GUI) ou Powershell (CLI);
  • Muitas opções de parâmetros em apenas 4 cmdlets.

As 4 Cmdlets disponíveis do BPA são:
  • Get-BPAModel
  • Invoke-BPAModel
  • Get-BPAResult
  • Set-BPAResult 
Uma vez iniciado o BPA ele poderá ser utilizado no Powershell ou no Gerenciador do Servidor, mas apenas o Powershell aceita parâmetros BPA adicionais que podem ser utilizados com outros Cmdlets do Powershell.

Acompanhe como utilizar o BPA no Windows Server 2012 através do Powershell.

Configurando Analisador de Práticas Recomendadas com Powershell

0) Para utilizar os cmdlets do BPA com o Powershell pode ser necessário importar o módulo do Server Manager e o o módulo BPA, execute os comandos:
  • Import-Module ServerManager
  • Import-Module BestPractices

1) Para verificar quais Módulos BPA estão instalados. Abra o Powershell com permissão de Administrador e execute o comando:
  • Get-BPaModel
Neste primeiro momento as informações importantes são Id e LastScanTime:
  • ID = Nome que será utilizado para usar um determinado Módulo BPA.
  • LastScanTime = Data da última vez que este Módulo BPA foi utilizado.
2) Para iniciar a verificação com um Módulo BPA basta invocar um modelo especifico com o parâmetro -ModelID, seguido pelo ID do modelo que você deseja usar, execute o comando:
  • Invoke-Bpamodel -ModelId Microsoft/Windows/DirectoryService

 O PowerShell confirma que a verificação foi bem sucedida (Success: True).
Não é recomendado, mas para iniciar a verificação em TODOS os Módulos BPA instalados execute: Get-BPAModel | Invoke-BPAModel

3) Para exibir os resultados da verificação do BPA, especifique o ID do Módulo para o qual você deseja recuperar os resultados com o comando:
  • Get-BpaResult -ModelId Microsoft/Windows/DirectoryService
O resultado da verificação pode gerar grandes quantidades de dados.
Mas esses dados podem ser limitados e até mesmo exportados.

4) Para diminuir o resultado vamos definir um filtro para "Erro" (poder ser Error dependendo da versão do S.O) e exibir somente os resultados que contenham o nível de gravidade "Erro" dentro do Módulo BPA especificado. Execute o comando:
  • Get-BpaResult -ModelId Microsoft/Windows/DirectoryServices | Where-Object {$_.Severity -eq 'Erro'} | FL Title, Problem, Resolution, Help
Os Níveis de Gravidade (Severity) de cada resultado dentro de um Módulo BPA podem ser Erro, Aviso e Informações. O filtro pode ser aplicado a qualquer nível de gravidade. 
Exemplo: {$_.Severity -eq 'Aviso'} e {$_.Severity -eq 'Informações'}
O Comando Format-List (FL) foi definido apenas para exibir os campos mais importantes de cada resultado dentro de um Módulo BPA como o Titulo, Problema, Resolução e Ajuda.

5) Para enviar este resultado por e-mail ou apenas salvar em disco como um relatório em um formato de arquivo mais amigável e frequentemente utilizado, basta exportar os dados convertendo-os para HTML com a cmdlet ConvertTO-Html. Execute o comando:
  • Get-BpaResult -ModelId Microsoft/Windows/DirectoryServices | Where-Object {$_.Severity -eq 'Erro'} | ConvertTO-Html -Property Title,Problem,Resolution,Help -as list | Set-Content C:\ResultadosBPA\DirectoryServices.htm
O parâmetro -As List é para não formatar o texto (dados) como Tabela.
A Formatação em tabela (padrão) não fica boa com textos grandes nos campos.

6) Abra a pasta onde seu arquivo foi salvo, dê um duplo clique sobre o arquivo.


7) O resultado é exibido no Internet Explorer com a formatação do texto como Lista. O Cmdlet ConvertTO-Html é extremamente versátil porque permite inserir códigos HTML para personalizar a exibição com todos os recursos do Navegador.


8) Para excluir um resultado é utilizado o parâmetro -Exclude $true. Vamos excluir os resultados de um Módulo BPA, mas somente os resultados com o Nível de Gravidade "Informações". Execute o comando:
  • Get-BpaResult -ModelId Microsoft/Windows/DirectoryService | Where-Object {$_.Severity -eq 'Informações'} | Set-BpaResult -Exclude $true


9) Para incluir um resultado excluído é utilizado o parâmetro -Exclude $false. Vamos incluir os resultados excluídos de um Módulo BPA restaurando os resultados excluídos do Nível de Gravidade "Informações". Execute o comando: 
  • Get-BpaResult -ModelId Microsoft/Windows/DirectoryService | Where-Object {$_.Severity -eq 'Informações'} | Set-BpaResult -Exclude $false



10) Para Excluir um Resultado Específico dentro do Módulo BPA vamos escolher o campo ResultNumber e adicionar o número do resultado que deseja excluir. Neste exemplo, o resultado de número 42. Execute o comando:
  • Get-BpaResult -ModelId Microsoft/Windows/DirectoryService | Where-Object {$_.ResultNumber -eq '42'} | Set-BpaResult -Exclude $true


Conclusão: Para utilizar IDs de submodelo deve se adicionar o parâmetro -SubModelId.

Mantenha atualizado o Help do Powershell deste Módulo.
  • Update-Help BestPractices
Utilize o comando Help Cmdlet para verificar os parâmetros adicionais e a sua sintaxe.

Esse artigo foi submetido por

Alexandre de Matos
MCSE - MCSA - MCTS
alexandremn@live.estacio.br

Nenhum comentário:

Postar um comentário

< >