none
Tempo de inatividade no AD mais outras informações RRS feed

  • Pergunta

  • Oi pessoal,

    achei o DSQuery para buscar informações sobre os usuários, hoje o que preciso é o tempo de inatividade do usuário, a quanto tempo ele não loga no servidor, mas preciso também identificar esse usuário, eu busco tabelar da seguinte forma: tempo sem login, nome, nome completo do perfil.

    dsquery -inactive 2 -o rdn eu fiz (estou fora da empresa, acho q é isso  q escrevi) e consegui todos que não autenticam a 2 semanas e o nome.

    como faço para conseguir a tabela citada acima? 


    se sabe, então porque pergunta? não atrapalhe, ajude!!!

    sábado, 26 de setembro de 2015 19:58

Respostas

  • Boa noite,

    Para saber quais usuários não logam no AD fazem dois meses:
    dsquery user -inactive 8 -limit 0
    Para saber quais computadores não logam no AD fazem dois meses:
    dsquery computer -inactive 8 -limit 0

    A opção -inactive 8 quer dizer o número de semanas de inatividade. Para um mês, troque o 8 por 4…
    Por padrão vão ser mostrados até 100 registros, a opção -limit 0 vai fazer com que todos os registros sejam mostrado.

    • Marcado como Resposta DaniloAC sexta-feira, 20 de novembro de 2015 18:55
    sábado, 26 de setembro de 2015 23:52
  • Este tipo de ação requer um cuidado muito especial, pois se houver mais que um DC na infraestrutura, executar um simples comando como DSQuery sobre apenas um DC pode gerar uma informação completamente errada.

    O motivo pelo qual eu informo isso, é que o atributo utilizado para gerar esta informação sobre o usuário chamado LastLogonDate é um dos atributos no AD DS que não são replicados entre os DCs existentes na infraestrutura.

    Resumindo, se houver uma infraestrutura composta por quatro DCs em dois sites distintos, por exemplo, SP e RJ e o comando for executado sobre o DC de SP ou a partir de uma estação de SP, você poderá ver registros de que contas de usuário de RJ nunca efetuaram logon (LastLogonDate=Null) ou com a última data errada.

    A melhor forma na minha opinião é executar o comando tomando o cuidado de listar todos os DCs existentes e em seguida usar o CmdLet Search-ADAcccount para se conectar a cada DC e obter o resultado.

    O código abaixo faz exatamente isto e no final gera um arquivo chamado InactiveAccounts.csv que pode ser importado em uma planilha do Excel.

    $DCList = Get-ADDomainController -Filter * | Select Name
    $OutPutArray = @()
    ForEach ($DC in $DCList) {
    	$OutPutArray += Search-ADAccount -UsersOnly -AccountInactive -Server $DC.Name | Select @{Name="DCName";Expression={$DC.Name}}, @{Name="SAMAccountName";Expression={$_.SamAccountName}}, @{Name="LastLogonDate";Expression={$_.LastLogonDate}}
    }
    $OutPutArray | Export-CSV C:\TEMP\InactiveAccounts.csv

    • Marcado como Resposta DaniloAC sexta-feira, 20 de novembro de 2015 18:55
    segunda-feira, 5 de outubro de 2015 19:25

Todas as Respostas

  • Boa noite,

    Para saber quais usuários não logam no AD fazem dois meses:
    dsquery user -inactive 8 -limit 0
    Para saber quais computadores não logam no AD fazem dois meses:
    dsquery computer -inactive 8 -limit 0

    A opção -inactive 8 quer dizer o número de semanas de inatividade. Para um mês, troque o 8 por 4…
    Por padrão vão ser mostrados até 100 registros, a opção -limit 0 vai fazer com que todos os registros sejam mostrado.

    • Marcado como Resposta DaniloAC sexta-feira, 20 de novembro de 2015 18:55
    sábado, 26 de setembro de 2015 23:52
  • Oi Fabiofol,

    esse script me entrega usuário e pc que no mínimo 8 semanas não logan no AD, quero poder montar uma tabela, se eu ponho 8 semanas, quero que seja exibido a quantas semanas cada contato não loga(com o mínimo de 8, por exemplo), nome completo do usuário e perfil do usuário.


    se sabe, então porque pergunta? não atrapalhe, ajude!!!

    segunda-feira, 5 de outubro de 2015 16:06
  • Este tipo de ação requer um cuidado muito especial, pois se houver mais que um DC na infraestrutura, executar um simples comando como DSQuery sobre apenas um DC pode gerar uma informação completamente errada.

    O motivo pelo qual eu informo isso, é que o atributo utilizado para gerar esta informação sobre o usuário chamado LastLogonDate é um dos atributos no AD DS que não são replicados entre os DCs existentes na infraestrutura.

    Resumindo, se houver uma infraestrutura composta por quatro DCs em dois sites distintos, por exemplo, SP e RJ e o comando for executado sobre o DC de SP ou a partir de uma estação de SP, você poderá ver registros de que contas de usuário de RJ nunca efetuaram logon (LastLogonDate=Null) ou com a última data errada.

    A melhor forma na minha opinião é executar o comando tomando o cuidado de listar todos os DCs existentes e em seguida usar o CmdLet Search-ADAcccount para se conectar a cada DC e obter o resultado.

    O código abaixo faz exatamente isto e no final gera um arquivo chamado InactiveAccounts.csv que pode ser importado em uma planilha do Excel.

    $DCList = Get-ADDomainController -Filter * | Select Name
    $OutPutArray = @()
    ForEach ($DC in $DCList) {
    	$OutPutArray += Search-ADAccount -UsersOnly -AccountInactive -Server $DC.Name | Select @{Name="DCName";Expression={$DC.Name}}, @{Name="SAMAccountName";Expression={$_.SamAccountName}}, @{Name="LastLogonDate";Expression={$_.LastLogonDate}}
    }
    $OutPutArray | Export-CSV C:\TEMP\InactiveAccounts.csv

    • Marcado como Resposta DaniloAC sexta-feira, 20 de novembro de 2015 18:55
    segunda-feira, 5 de outubro de 2015 19:25
  • legal a dica Anderson_T.

    ainda não achei onde escolho propriedade por propriedade para exibir o que preciso.


    se sabe, então porque pergunta? não atrapalhe, ajude!!!

    sexta-feira, 16 de outubro de 2015 18:50
  • As propriedades exibidas na saída do CmdLet Search-ADAccount são limitadas e se precisar de algo além dos atributos disponíveis, você terá que adaptar o código e extrair a informação com outro CmdLet.

    AccountExpirationDate :
    DistinguishedName     :
    Enabled               :
    LastLogonDate         :
    LockedOut             :
    Name                  :
    ObjectClass           :
    ObjectGUID            :
    PasswordExpired       :
    PasswordNeverExpires  :
    SamAccountName        :
    SID                   :
    UserPrincipalName     :
    PropertyNames         :
    PropertyCount         :

    sexta-feira, 16 de outubro de 2015 20:12