Olá Pessoal,
Essa semana eu precisava ver se alguns computadores tinham compatibilidade com o Windows 11. Para isso eu precisaria avaliar se eles tinham o modulo de TPM, espaço disponível em disco, memoria suficiente, processador com o Clock minimo requerido, etc. Como eu tenho o hábito de tratar esse tipo de tarefa repetitiva como uma oportunidade para automatizar, resolvi escrever um script que fizesse o teste por requerimento, e nada melhor para escrever testes que o Pester, que é um framework de testes e mocking para powershell.
O script irá criar um contexto por servidor informado ao parametro ServerList, que aceita uma array de strings, e irá iniciar uma conexão remota do tipo CIMSession para as consultas a classes WMI e uma sessão remota do tipo PSSession para uso com o comandos como o Invoke-Command
. Antes de executar os testes ele irá criar as conexões que serão reutilizadas pelos testes e ao final serão removidas para que a sessão remota seja encerrada dessa forma a memória local e remota fica preservada.
Como a classe Win32_Tpm requer elevação, o script requer que o terminal esteja sendo executado como administrador. Com ele, você deverá ser capaz de testar diversos servidores em ordem e validar a Compatibilidade com o Windows 11, se todos os testes forem concluídos com sucesso, significa que o computador é compatível o requisito mais crítico é o TPM.
Exemplo de uso: .\Windows11Compatibility.tests.ps1 -ServerList localhost, $env:computername
O script completo pode ser baixado aqui: Script Completo
Resultado:
Dúvidas? Sugestões? Comente!
Até a próxima!