Search-ADAccount :: Encontrando contas inativas, desativadas ou expiradas

Search-ADAccount :: Encontrando contas inativas, desativadas ou expiradas

O Search-ADAccountcmdlet possui opções -AccountDisabled, -AccountExpirede -AccountInactive; cujos resultados podem não ser mutuamente exclusivos nem inclusivos.

ou seja, uma conta que foi desativada ontem, mas que ficou inativa por apenas 1 semana, pode não aparecer como desativada se nosso intervalo de tempo for de -90 dias. Por outro lado, uma conta que ainda não tenha sido desativada, mas que não seja usada há algum tempo, apareceria como inativa, mas não desativada.

Existe uma maneira de usar essas opções para listar todas ORas contas inativas desativadas e expiradas; ou preciso executar três consultas e depois fazer uma | select * -uniquepara remover duplicatas?

Responder1

Veja como eu faria isso.

Get-ADUser -Filter * -Properties Enabled, AccountExpirationDate, LastLogonDate | ? { `
($_.Enabled -EQ $False) -OR `
($_.AccountExpirationDate -NE $NULL -AND $_.AccountExpirationDate -LT (Get-Date)) -OR `
($_.LastLogonDate -NE $NULL -AND $_.LastLogonDate -LT (Get-Date).AddDays(-90)) }

Uma chamada para AD obtém apenas as propriedades que precisamos. Inclui todos os usuários desativados, expirados (uma configuração incomum) ou "inativos".

Observe que LastLogonDate será nulo se a conta do usuário foi criada, mas o usuário nunca fez logon.

O AccountExpirationDate também será nulo na maioria das vezes, pois os administradores não usam essa configuração com frequência. Você precisa verificar se eles não são nulos antes que comparações significativas com datas possam ser feitas com eles.

Se você quiser incluir contas de usuários que nunca fizeram login, simplesmente remova a verificação de $Null em LastLogonDate... mas isso significa que você verá contas que podem ter sido criadas ontem e ainda não tiveram a chance de fazer login. .. nesse caso, para compensar, adicione um cheque para WhenCreated -LT (Get-Date).AddDays(-90)ter certeza de obter apenas contas que foram criadas há mais de 90 dias, mas nunca fizeram login.

E para realmente responder à sua pergunta sobre o Search-ADAccountcmdlet... não, use um cmdlet diferente, essas opções são mutuamente exclusivas.

informação relacionada