Consegui fazer um pouco de progresso na solução de problemas no final. Vou tentar o meu melhor para lembrar os detalhes, mas já faz um tempo ...
Infelizmente, as máquinas em questão eram máquinas com Windows 8, portanto, o cmdlet Get-Tpm
não retorna informações sobre os contadores de bloqueio. Por fim, consegui criar um script personalizado para ler esses contadores diretamente do TPM e, com certeza, o contador de bloqueios atingiu o valor do limite de bloqueio. Este foi o caso, embora não tenhamos inserido o PIN incorretamente.
Depois de muita escavação, acabei encontrando uma seção na especificação do TPM 2.0 que descreve um mecanismo que quase certamente está causando o problema. Antes de entrar em detalhes, um pouco de background seria útil ... Antes que um SO possa fazer uso do TPM, ele deve chamar a rotina de inicialização do TPM. Isso parece acontecer antes da exibição da tela PIN do BitLocker. Por outro lado, quando o sistema operacional tiver terminado de usar o TPM, ele deverá chamar a rotina de desligamento do TPM. O Windows parece fazer isso durante a sequência de desligamento do sistema operacional.
O problema surge quando o sistema é desligado sem que o SO seja desligado corretamente. Nesse cenário, a rotina de desligamento do TPM não foi chamada antes do chip ser desligado. A especificação do TPM 2.0 informa que, se a rotina de inicialização do TPM for chamada sem uma chamada anterior para a rotina de desligamento do TPM, ela deverá incrementar o contador de bloqueio em um. Esse recurso existe para proteger contra um tipo específico de ataque contra o TPM. Portanto, quando o dispositivo é ligado novamente, o contador de bloqueio é incrementado em um, mesmo se o usuário inserir o PIN correto do BitLocker.
No meu caso particular, os dispositivos em questão eram todos os tablets Microsoft Surface Pro 3. Meu palpite era que os usuários estavam segurando o botão de energia para desligar a máquina sem desligá-la corretamente. Geralmente, isso não é um grande problema, pois o contador de bloqueio acabará diminuindo novamente após duas horas. No entanto, se eles fizerem isso com bastante frequência, o contador de bloqueios não terá tempo para decrementar. O problema é agravado pelo fato de que o temporizador usado para rastrear quando decrementar é redefinido se a máquina for desligada, o que significa que ela deve permanecer ligada continuamente por duas horas antes de decrementar. Alguns usuários só retiram sua máquina por curtos períodos.
O Surface Pro 3 suporta algo que a Microsoft chama de "Connected Standby" ou "InstantGo". Esse é um recurso que faz o dispositivo se comportar mais como um dispositivo móvel em termos de gerenciamento de energia. Tocar no botão liga / desliga faz com que o dispositivo entre no modo de baixo consumo de energia, em vez do modo de espera tradicional ou de suspensão. No entanto, mudamos o plano de energia para "Alto desempenho", que tem o efeito de desativar o modo de espera conectado, fazendo com que o dispositivo se comporte como um PC tradicional. Eu acho que isso pode ser um fator no problema.