consulta Powershell lastlogondate (lastlogontimestamp) retornando principalmente valores em branco (não correspondendo ao valor ADSIedit para o atributo de usuário correspondente)

6

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?

    
por Frustrated_IT_guy 22.04.2014 / 21:40

1 resposta

2

Adi estava certo, é algum tipo de problema de permissão. Na verdade, resolvi isso agora mesmo quando um colega de trabalho executou a consulta e obteve resultados adequados, mas usou sua própria conta de login. Im além ele "correu como administrador" para elevar o console PS. Quando fiz isso, funcionou corretamente. Eu não tenho ideia de como eu nunca tive que fazer isso no passado, e também sou um administrador de domínio e, portanto, administrador local nos CDs, mas seja o que for. Ele agora funciona usando o prompt PS elevado. Para o registro eu fui em ADSIedit com a minha conta regular usando e não iniciar sessão elevada ..... Estranho, mas eu vou levá-lo.

    
por 24.04.2014 / 20:05