Estou executando um script muito curto para simplesmente imprimir todos os usuários e o horário do último logon:
get-aduser -filter * -property * | nome do ft, lastlogondate
Notei que apenas um pequeno número de usuários tem um valor de data de logon, enquanto a grande maioria está em branco. Estes são usuários ativos que efetuam login todos os dias. É meu entendimento que lastlogondate é algum tipo de alias de powershell que converte o valor do atributo de usuário 'lastlogontimestamp' de um inteiro grande em uma data legível. Eu tive sucesso com essa consulta no passado e novamente funciona bem para alguns usuários. Fui ao ADSIedit e descobri que todos os usuários têm um valor em lastlogontimestamp. Apesar disso, se eu consultar diretamente esse valor, ainda fico em branco no PS para cada usuário em questão:
get-aduser -filter * -property * | nome do ft, lastlogontimestamp
Esse comportamento é verdadeiro em todos os 3 DCs no domínio. Estou perplexo. Isso faz parte de um script maior que relata e atua em contas de usuários que não fazem login há mais de X dias e está funcionando bem trimestralmente até hoje. Ao executá-lo hoje, notei que muito poucos usuários apareciam no relatório como obsoletos, portanto, na solução de problemas, incluí a consulta mais básica para ver o que ela faria. O carimbo de data / hora em branco que está sendo retornado no PowerShell está definitivamente errado e porque poucos usuários aparecem no meu relatório como obsoletos (o script exclui valores de logon em branco), mas não sei por que o valor no PS está em branco enquanto o valor no editor ADSI para o usuário específico é definitivamente preenchido. Isso também é verdade para vários outros atributos, como 'logoncount', e somente para os usuários afetados (maioria), enquanto os poucos usuários que estão trabalhando corretamente não têm descrepâncias entre o atributo ADSI e o que o PS mostra.
Todos os 3 DCs neste exemplo são 2012 R2 e notei que esse comportamento também acontece em contas de usuário em um domínio misto menor (DCs de 2008 e 2012), mas passou despercebido porque quase nenhum usuário reside lá, então não é muito de um foco.
Uma outra coisa importante, se eu executar este comando PS contra contas de computador Get-ADcomputer em vez de Get-ADuser Eu não tenho tais problemas, todos os computadores relatam um lastlogondate corretamente sem espaços em branco.
Alguma ajuda antes de ligar para a Microsoft?