Rápido-n-Easy maneira de remover usuários do ActiveDirectory desatualizados?

4

Temos cerca de 70 funcionários atuais, mas 178 contas no ActiveDirectory. Os administradores anteriores nunca removeram contas antigas e, às vezes, nem sequer foram desativados.

Como está, estou pensando em revisar manualmente cada conta para determinar se ela pode ser removida. Existe uma maneira mais fácil de remover contas com base em uma condição? Por exemplo, remover (ou pelo menos desativar ou sinalizar de alguma forma) os usuários que não fizeram login no último mês ou mais?

    
por Jason Taylor 25.03.2010 / 16:11

3 respostas

5

Você pode usar dsquery para localizar usuários inativos:

dsquery user -inactive 10 -limit 0

Deve deixar todos os usuários inativos por 10 semanas ou mais.

De dsquery user /?

...
-inactive <NumWeeks>    Finds users that have been inactive
                        (not logged on) for at least <NumWeeks>
                        number of weeks.
...

Você pode canalizar a saída em dsrm se quiser remover as listagens do domínio. Por favor, note que isso não vai incomodar, solicitando que você aplique a quantidade apropriada de cautela.

dsquery user -inactive 10 -limit 0 | dsrm -noprompt

Veja esta questão um pouco relacionada: Removendo computadores antigos em um domínio

    
por 25.03.2010 / 16:20
1

Se você acabou de executar o dsquery no contexto de um arquivo em lote chamado com mais de um objeto selecionado em seu dsquery, você receberá "dsmove failed (user) é um parâmetro desconhecido".

Eu tenho dois lotes (um para contas de computador e outro para contas de usuário) que são executados mensalmente a partir de tarefas do windows sch. Eles têm o seguinte código:

Para computadores:

    for /f "Tokens=*" %%s in ('dsquery computer -inactive 5 -limit 0') do ( 
DSMOVE %%s -newparent "OU=Computers,OU=Quarantine,OU=MyOu,DC=MyDomain,DC=local" 
) 

Para usuários:

        for /f "Tokens=*" %%s in ('dsquery user -inactive 5 -limit 0') do ( 
DSMOVE %%s -newparent "OU=Users,OU=Quarantine,OU=MyOu,DC=MyDomain,DC=local" 
) 

Eu tenho GPOs aplicados às UOs "Quarentena" que têm solicitações de logon para notificar o usuário de que a conta de usuário, ou a conta do computador, será excluída e entrar em contato com o Suporte Técnico se acreditarem estar em erro. Os GPOs também fazem algumas ações de bloqueio. Em seguida, reviso os objetos movidos para exclusão manual, caso não veja exceções (como um usuário em férias longas ou um servidor offline, mas importante).

Você pode alterar o "do" dsmove para dsrm, se quiser pular a movimentação da UO e revisar.

Consulte aqui: Script do Active Directory: DSMOVE falhou

    
por 25.03.2010 / 19:40
0

Se você é fã do Powershell, eu visitaria www.quest.com e usaria seu conjunto de ferramentas para o Active Directory. Eles são livres.

PowerShell Commands for Active Directory

O ActiveRoles Management Shell para Active Directory é um conjunto de comandos do PowerShell que pode ser usado para executar e automatizar tarefas administrativas como descobrir o ambiente do AD, alterar propriedades do usuário, modificar membros do grupo, aprovisionar novas contas de usuário e executar várias outras tarefas dentro do Active Directory.

    
por 25.03.2010 / 16:18