none
Desativar e mover usuarios inativos do AD RRS feed

  • Pergunta

  •  

    Pessoal,

     

    Preciso indentificar contas inativas no dominio com periodo superior a 60 dias, movendo para outra OU e desabilitando as mesmas. Pesquisei aqui no site e encontrei alguns scripts para executar essa tarefa, mas não obtive sucesso.

     

    Já acessei o repositorio de script, mas não encontrei nenhum que atenda esssa questão.

     

    Alguem tem algum script diferente ou outra solução para esse procedimento administrativo?

     

    Agradeço a todos.

     

    Eduardo Mello - MCP.

     

    terça-feira, 8 de julho de 2008 22:17

Respostas

  • Mais um, com este eu já cheguei na parte de listar quantos dias o usuário está sem logar.
    Lembrando que vc deve fazer uma lista de exeções se vc usa contas de serviço.
    Vou dar mais umas cabeçadas neste aqui para fazer o restante da necesscidade.
    Gostaria de te pedir para não tirar o mérito da pessoa que fez o script.
    abraço.


    ' LastLogonTimeStamp.vbs
    ' VBScript program to determine when each user in the domain last logged
    ' on. Domain must be at Windows Server 2003 Functional Level.
    '
    ' ----------------------------------------------------------------------
    ' Copyright (c) 2007 Richard L. Mueller
    ' Hilltop Lab web site - http://www.rlmueller.net
    ' Version 1.0 - March 24, 2007
    ' Version 1.1 - July 6, 2007 - Modify how IADsLargeInteger interface
    '                              is invoked.
    '
    ' The lastLogonTimeStamp attribute is Integer8, a 64-bit number
    ' representing the date as the number of 100 nanosecond intervals since
    ' 12:00 am January 1, 1601. This value is converted to a date. The last
    ' logon date is in UTC (Coordinated Univeral Time). It must be adjusted
    ' by the Time Zone bias in the machine registry to convert to local
    ' time.
    '
    ' You have a royalty-free right to use, modify, reproduce, and
    ' distribute this script file in any way you find useful, provided that
    ' you agree that the copyright owner above has no warranty, obligations,
    ' or liability for such use.
    'Adaptado por Romeu Malacarne Avancini - rmavancini@gmail.com
    'Feito adptações para gerar o realtório com o cn do usuário e ainda dizer a quantos dias está sem logar

    Option Explicit

    Dim objRootDSE, adoConnection, adoCommand, strQuery
    Dim adoRecordset, strDNSDomain, objShell, lngBiasKey
    Dim lngBias, k, strDN, dtmDate, objDate
    Dim strBase, strFilter, strAttributes, lngHigh, lngLow

    ' Obtain local Time Zone bias from machine registry.
    Set objShell = CreateObject("Wscript.Shell")
    lngBiasKey = objShell.RegRead("HKLM\System\CurrentControlSet\Control\" _
        & "TimeZoneInformation\ActiveTimeBias")
    If (UCase(TypeName(lngBiasKey)) = "LONG") Then
        lngBias = lngBiasKey
    ElseIf (UCase(TypeName(lngBiasKey)) = "VARIANT()") Then
        lngBias = 0
        For k = 0 To UBound(lngBiasKey)
            lngBias = lngBias + (lngBiasKey(k) * 256^k)
        Next
    End If
    Set objShell = Nothing

    ' Determine DNS domain from RootDSE object.
    Set objRootDSE = GetObject("LDAP://RootDSE")
    strDNSDomain = objRootDSE.Get("defaultNamingContext")
    Set objRootDSE = Nothing

    ' Use ADO to search Active Directory.
    Set adoCommand = CreateObject("ADODB.Command")
    Set adoConnection = CreateObject("ADODB.Connection")
    adoConnection.Provider = "ADsDSOObject"
    adoConnection.Open "Active Directory Provider"
    adoCommand.ActiveConnection = adoConnection

    ' Search entire domain.
    strBase = "<LDAP://" & strDNSDomain & ">"

    ' Filter on all user objects.
    strFilter = "(&(objectCategory=person)(objectClass=user))"

    ' Comma delimited list of attribute values to retrieve.
    'nesta srting vc precisa inserir os atributos que deseja coletar os dados
    strAttributes = "distinguishedName,lastLogonTimeStamp,cn"

    ' Construct the LDAP syntax query.
    strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"

    ' Run the query.
    adoCommand.CommandText = strQuery
    adoCommand.Properties("Page Size") = 100
    adoCommand.Properties("Timeout") = 60
    adoCommand.Properties("Cache Results") = False
    Set adoRecordset = adoCommand.Execute

    ' Enumerate resulting recordset.
    Do Until adoRecordset.EOF
       ' Retrieve attribute values for the user.
        'strDN = adoRecordset.Fields("distinguishedName").Value
        strDN = adoRecordset.Fields("cn").Value
       
        ' Convert Integer8 value to date/time in current time zone.
        On Error Resume Next
        Set objDate = adoRecordset.Fields("lastLogonTimeStamp").Value
        If (Err.Number <> 0) Then
            On Error GoTo 0
            dtmDate = #1/1/1601#
        Else
            On Error GoTo 0
            lngHigh = objDate.HighPart
            lngLow = objDate.LowPart
            If (lngLow < 0) Then
                lngHigh = lngHigh + 1
            End If
            If (lngHigh = 0) And (lngLow = 0 ) Then
                dtmDate = #1/1/1601#
            Else
                dtmDate = #1/1/1601# + (((lngHigh * (2 ^ 32)) _
                    + lngLow)/600000000 - lngBias)/1440
            End If
        End If
        ' Display values for the user.
        If (dtmDate = #1/1/1601#) Then
            Wscript.Echo strDN & ";Never"
        Else
            'Wscript.Echo strDN & ";" & dtmDate
            Wscript.Echo strDN & " ; " & dtmDate &" ; "& DateDiff("d",dtmDate,Now()) &" dias sem logar"
        End If
        adoRecordset.MoveNext
    Loop

    ' Clean up.
    adoRecordset.Close
    adoConnection.Close
    Set adoConnection = Nothing
    Set adoCommand = Nothing
    Set adoRecordset = Nothing
    Set objDate = Nothing
    quarta-feira, 23 de julho de 2008 20:12
  • Olá,
     
    já tentou olhar o comando dsmove e dsquery? Tem parâmetro específico para isso.
     
     
    []s,
     

    --
    Vinicius Canto Xavier
    MVP Scripting - Admin Frameworks - PowerShell
     
    Blog sobre scripting e powershell: http://viniciuscanto.blogspot. com
    "Lissandra" wrote in message news:8977d508-d785-4d0 7-b79c-a89beac8ce2d...
    Ola Romeu, no meu caso eu estou precisando pegar um determina usuário que esta na CN= Users e coloca-lo em uma OU especifica.
    Como eu faria?

    Eu tentei isso:
     Dim Liad_comp As IADsContainer
      
       
        '"LDAP://CN=" & Lstr_display_name & ",CN=users,DC=lugar,DC=com,DC=br"
        ' código para criar grupo local ou global no NT
       
    On Error Resume Next

        Set Liad_comp = GetObject("LDAP://CN=" & Trim$(Lstr_display_name) & ",CN=Users,DC=lugar,DC=com,DC=br")
       
        'movendo para a OUAposentados
        Liad_comp.MoveHere "LDAP://CN=" & Trim$(Lstr_display_name) & ",OU=OUAposentados,DC=lugar,DC=com,DC=br", vbNullString

    mas não funcionou, sabe me dizer o que eu fiz de errado?
    quinta-feira, 4 de junho de 2009 00:47
    Moderador

Todas as Respostas

  • Nesta mesma pagina o Vinicius respondeu para outra pessoa

    http://forums.microsoft.com/TechNet-BR/ShowPost.aspx?PostID=3572532&SiteID=29
    quarta-feira, 9 de julho de 2008 16:27
  • Romeu,

    Agradeço pela dica, mas o dsquery não atende a minha necessidade. Preciso de um script para varrer o banco do AD e mover os usuarios inativos para outra OU e desabilitando as mesmas.

     

    Preciso manter esses usuarios cancelados por um periodo de tempo, não posso deletar automaticamente..

     

    Um abraço.

    quarta-feira, 9 de julho de 2008 19:51



  • Fala cara tenta esse aqui,
    Esse também achei aqui no forum postado pelo Laerte:
    http://forums.microsoft.com/TechNet-BR/ShowPost.aspx?PostID=2955601&SiteID=29




    Dim objRootDSE, strConfig, adoConnection, adoCommand, strQuery
    Dim adoRecordset, objDC
    Dim strDNSDomain, objShell, lngBiasKey, lngBias, k, arrstrDCs()
    Dim strDN, dtmDate, objDate, objList, strUser
    Dim strBase, strFilter, strAttributes, lngHigh, lngLow

    datual = now()
    dexclusao = datepart("d", datual) & "/" & datepart("m", datual) & "/" & datepart("yyyy", datual)
    dexclusao = Cdate(dexclusao) - 30
    set FSO = createobject("scripting.filesystemobject")
    set log_users = fso.createtextfile("C:\Users_Inativos.txt",2)
    log_users.close
    set log_users = fso.opentextfile("C:\Users_inativos.txt",8)
    usuarios = ""

    Set objList = CreateObject("Scripting.Dictionary")
    objList.CompareMode = vbTextCompare

     

    Set objShell = CreateObject("Wscript.Shell")
    lngBiasKey = objShell.RegRead("HKLM\System\CurrentControlSet\Control\" _
        & "TimeZoneInformation\ActiveTimeBias")
    If (UCase(TypeName(lngBiasKey)) = "LONG") Then
        lngBias = lngBiasKey
    ElseIf (UCase(TypeName(lngBiasKey)) = "VARIANT()") Then
        lngBias = 0
        For k = 0 To UBound(lngBiasKey)
            lngBias = lngBias + (lngBiasKey(k) * 256^k)
        Next
    End If


    Set objRootDSE = GetObject("LDAP://RootDSE")
    strConfig = objRootDSE.Get("configurationNamingContext")
    strDNSDomain = objRootDSE.Get("defaultNamingContext")


    Set adoCommand = CreateObject("ADODB.Command")
    Set adoConnection = CreateObject("ADODB.Connection")
    adoConnection.Provider = "ADsDSOObject"
    adoConnection.Open "Active Directory Provider"
    adoCommand.ActiveConnection = adoConnection

    strBase = "<LDAP://" & strConfig & ">"
    strFilter = "(objectClass=nTDSDSA)"
    strAttributes = "AdsPath"
    strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"

    adoCommand.CommandText = strQuery
    adoCommand.Properties("Page Size") = 100
    adoCommand.Properties("Timeout") = 60
    adoCommand.Properties("Cache Results") = False

    Set adoRecordset = adoCommand.Execute


    k = 0
    Do Until adoRecordset.EOF
        Set objDC = _
            GetObject(GetObject(adoRecordset.Fields("AdsPath").Value).Parent)
        ReDim Preserve arrstrDCs(k)
        arrstrDCs(k) = objDC.DNSHostName
        k = k + 1
        adoRecordset.MoveNext
    Loop
    adoRecordset.Close

    ' Retrieve lastLogon attribute for each user on each Domain Controller.
    For k = 0 To Ubound(arrstrDCs)
        strBase = "<LDAP://" & arrstrDCs(k) & "/" & strDNSDomain & ">"
        strFilter = "(&(objectCategory=person)(objectClass=user))"
        strAttributes = "sAMAccountName,lastLogon, AdsPath"
        strQuery = strBase & ";" & strFilter & ";" & strAttributes _
            & ";subtree"
        adoCommand.CommandText = strQuery
        On Error Resume Next
        Set adoRecordset = adoCommand.Execute
        If (Err.Number <> 0) Then
            On Error GoTo 0
            Wscript.Echo "Domain Controller not available: " & arrstrDCs(k)
        Else
            On Error GoTo 0
            Do Until adoRecordset.EOF
                strDN = adoRecordset.Fields("sAMAccountName").Value
                strADS = adoRecordset.Fields("AdsPAth").Value
                On Error Resume Next
                Set objDate = adoRecordset.Fields("lastLogon").Value
                If (Err.Number <> 0) Then
                    On Error GoTo 0
                    dtmDate = #1/1/1601#
                Else
                    On Error GoTo 0
                    lngHigh = objDate.HighPart
                    lngLow = objDate.LowPart
                    If (lngLow < 0) Then
                        lngHigh = lngHigh + 1
                    End If
                    If (lngHigh = 0) And (lngLow = 0 ) Then
                        dtmDate = #1/1/1601#
                    Else
                        dtmDate = #1/1/1601# + (((lngHigh * (2 ^ 32)) _
                            + lngLow)/600000000 - lngBias)/1440
                    End If
                End If
                If (objList.Exists(strDN) = True) Then
                    If (dtmDate > objList(strDN)) Then
                        objList.Item(strDN) = dtmDate
                    End If
                Else
                 if dtmDate < dexclusao then
                   if instr(strADS, "nome da OU") = false then
                    log_users.writeline strADS
                    usuarios = usuarios & strDN & " "
                   end if
                 end if
                End If
                adoRecordset.MoveNext
            Loop
            adoRecordset.Close
        End If
    Next


    adoConnection.Close
    log_users.close
    Set objRootDSE = Nothing
    Set adoConnection = Nothing
    Set adoCommand = Nothing
    Set adoRecordset = Nothing
    Set objDC = Nothing
    Set objDate = Nothing
    Set objList = Nothing
    Set objShell = Nothing

    resposta = MsgBox(usuarios & vbCrLf & "Gostaria de mover esses usuários para uma nova OU?", vbYesNo)
    if resposta = vbYes then
    set log_users = fso.opentextfile("C:\Users_Inativos.txt",1)
    Do Until objFile.AtEndOfStream
     oUser = objFile.ReadLine
     usuarios = split(oUser, ",")
    For i = 1 to Ubound(usuarios)
     UserDN = UserDN & usuarios(i) & ","
    Next
    tamanho = len(UserDN)
    UserDN = left(UserDN, tamanho - 1 )
    Set objUser = getobject("LDAP://" & UserDN)
    objUser.MoveHere _
        "LDAP://" & usuarios(0) & ",OU=nome da OU,dc= nome do seu dc, dc=seu dominio,dc=com,dc=br", vbNullString

    Loop

    end if

    log_users.close

    quarta-feira, 23 de julho de 2008 19:29
  • Mais um, com este eu já cheguei na parte de listar quantos dias o usuário está sem logar.
    Lembrando que vc deve fazer uma lista de exeções se vc usa contas de serviço.
    Vou dar mais umas cabeçadas neste aqui para fazer o restante da necesscidade.
    Gostaria de te pedir para não tirar o mérito da pessoa que fez o script.
    abraço.


    ' LastLogonTimeStamp.vbs
    ' VBScript program to determine when each user in the domain last logged
    ' on. Domain must be at Windows Server 2003 Functional Level.
    '
    ' ----------------------------------------------------------------------
    ' Copyright (c) 2007 Richard L. Mueller
    ' Hilltop Lab web site - http://www.rlmueller.net
    ' Version 1.0 - March 24, 2007
    ' Version 1.1 - July 6, 2007 - Modify how IADsLargeInteger interface
    '                              is invoked.
    '
    ' The lastLogonTimeStamp attribute is Integer8, a 64-bit number
    ' representing the date as the number of 100 nanosecond intervals since
    ' 12:00 am January 1, 1601. This value is converted to a date. The last
    ' logon date is in UTC (Coordinated Univeral Time). It must be adjusted
    ' by the Time Zone bias in the machine registry to convert to local
    ' time.
    '
    ' You have a royalty-free right to use, modify, reproduce, and
    ' distribute this script file in any way you find useful, provided that
    ' you agree that the copyright owner above has no warranty, obligations,
    ' or liability for such use.
    'Adaptado por Romeu Malacarne Avancini - rmavancini@gmail.com
    'Feito adptações para gerar o realtório com o cn do usuário e ainda dizer a quantos dias está sem logar

    Option Explicit

    Dim objRootDSE, adoConnection, adoCommand, strQuery
    Dim adoRecordset, strDNSDomain, objShell, lngBiasKey
    Dim lngBias, k, strDN, dtmDate, objDate
    Dim strBase, strFilter, strAttributes, lngHigh, lngLow

    ' Obtain local Time Zone bias from machine registry.
    Set objShell = CreateObject("Wscript.Shell")
    lngBiasKey = objShell.RegRead("HKLM\System\CurrentControlSet\Control\" _
        & "TimeZoneInformation\ActiveTimeBias")
    If (UCase(TypeName(lngBiasKey)) = "LONG") Then
        lngBias = lngBiasKey
    ElseIf (UCase(TypeName(lngBiasKey)) = "VARIANT()") Then
        lngBias = 0
        For k = 0 To UBound(lngBiasKey)
            lngBias = lngBias + (lngBiasKey(k) * 256^k)
        Next
    End If
    Set objShell = Nothing

    ' Determine DNS domain from RootDSE object.
    Set objRootDSE = GetObject("LDAP://RootDSE")
    strDNSDomain = objRootDSE.Get("defaultNamingContext")
    Set objRootDSE = Nothing

    ' Use ADO to search Active Directory.
    Set adoCommand = CreateObject("ADODB.Command")
    Set adoConnection = CreateObject("ADODB.Connection")
    adoConnection.Provider = "ADsDSOObject"
    adoConnection.Open "Active Directory Provider"
    adoCommand.ActiveConnection = adoConnection

    ' Search entire domain.
    strBase = "<LDAP://" & strDNSDomain & ">"

    ' Filter on all user objects.
    strFilter = "(&(objectCategory=person)(objectClass=user))"

    ' Comma delimited list of attribute values to retrieve.
    'nesta srting vc precisa inserir os atributos que deseja coletar os dados
    strAttributes = "distinguishedName,lastLogonTimeStamp,cn"

    ' Construct the LDAP syntax query.
    strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"

    ' Run the query.
    adoCommand.CommandText = strQuery
    adoCommand.Properties("Page Size") = 100
    adoCommand.Properties("Timeout") = 60
    adoCommand.Properties("Cache Results") = False
    Set adoRecordset = adoCommand.Execute

    ' Enumerate resulting recordset.
    Do Until adoRecordset.EOF
       ' Retrieve attribute values for the user.
        'strDN = adoRecordset.Fields("distinguishedName").Value
        strDN = adoRecordset.Fields("cn").Value
       
        ' Convert Integer8 value to date/time in current time zone.
        On Error Resume Next
        Set objDate = adoRecordset.Fields("lastLogonTimeStamp").Value
        If (Err.Number <> 0) Then
            On Error GoTo 0
            dtmDate = #1/1/1601#
        Else
            On Error GoTo 0
            lngHigh = objDate.HighPart
            lngLow = objDate.LowPart
            If (lngLow < 0) Then
                lngHigh = lngHigh + 1
            End If
            If (lngHigh = 0) And (lngLow = 0 ) Then
                dtmDate = #1/1/1601#
            Else
                dtmDate = #1/1/1601# + (((lngHigh * (2 ^ 32)) _
                    + lngLow)/600000000 - lngBias)/1440
            End If
        End If
        ' Display values for the user.
        If (dtmDate = #1/1/1601#) Then
            Wscript.Echo strDN & ";Never"
        Else
            'Wscript.Echo strDN & ";" & dtmDate
            Wscript.Echo strDN & " ; " & dtmDate &" ; "& DateDiff("d",dtmDate,Now()) &" dias sem logar"
        End If
        adoRecordset.MoveNext
    Loop

    ' Clean up.
    adoRecordset.Close
    adoConnection.Close
    Set adoConnection = Nothing
    Set adoCommand = Nothing
    Set adoRecordset = Nothing
    Set objDate = Nothing
    quarta-feira, 23 de julho de 2008 20:12
  • Boa noite,

    Dá uma olhada na ferramenta oldcmp (http://www.joeware.net/freetools/tools/oldcmp/index.htm).


    quinta-feira, 24 de julho de 2008 01:01
  • Ola Romeu, no meu caso eu estou precisando pegar um determina usuário que esta na CN= Users e coloca-lo em uma OU especifica.
    Como eu faria?

    Eu tentei isso:
     Dim Liad_comp As IADsContainer
      
       
        '"LDAP://CN=" & Lstr_display_name & ",CN=users,DC=lugar,DC=com,DC=br"
        ' código para criar grupo local ou global no NT
       
    On Error Resume Next

        Set Liad_comp = GetObject("LDAP://CN=" & Trim$(Lstr_display_name) & ",CN=Users,DC=lugar,DC=com,DC=br")
       
        'movendo para a OUAposentados
        Liad_comp.MoveHere "LDAP://CN=" & Trim$(Lstr_display_name) & ",OU=OUAposentados,DC=lugar,DC=com,DC=br", vbNullString

    mas não funcionou, sabe me dizer o que eu fiz de errado?
    quarta-feira, 3 de junho de 2009 21:57
  • Olá,
     
    já tentou olhar o comando dsmove e dsquery? Tem parâmetro específico para isso.
     
     
    []s,
     

    --
    Vinicius Canto Xavier
    MVP Scripting - Admin Frameworks - PowerShell
     
    Blog sobre scripting e powershell: http://viniciuscanto.blogspot. com
    "Lissandra" wrote in message news:8977d508-d785-4d0 7-b79c-a89beac8ce2d...
    Ola Romeu, no meu caso eu estou precisando pegar um determina usuário que esta na CN= Users e coloca-lo em uma OU especifica.
    Como eu faria?

    Eu tentei isso:
     Dim Liad_comp As IADsContainer
      
       
        '"LDAP://CN=" & Lstr_display_name & ",CN=users,DC=lugar,DC=com,DC=br"
        ' código para criar grupo local ou global no NT
       
    On Error Resume Next

        Set Liad_comp = GetObject("LDAP://CN=" & Trim$(Lstr_display_name) & ",CN=Users,DC=lugar,DC=com,DC=br")
       
        'movendo para a OUAposentados
        Liad_comp.MoveHere "LDAP://CN=" & Trim$(Lstr_display_name) & ",OU=OUAposentados,DC=lugar,DC=com,DC=br", vbNullString

    mas não funcionou, sabe me dizer o que eu fiz de errado?
    quinta-feira, 4 de junho de 2009 00:47
    Moderador
  • Mas estes comandos funcionam em vb6?

    abraços
    quinta-feira, 4 de junho de 2009 11:42
  • Ola Lissandra,

    Os comandos dsquery e dsmove são do windows 2003 (não lembro se tem que instalar o support tools, que vem dentro do cd)

    Dá uma olhada no link abaixo:

    http://support.microsoft.com/kb/322684/en-us/

    Até mais,

    Jesiel
    quinta-feira, 4 de junho de 2009 12:59
  • Olá Josiel, obrigada

    vou dar uma olha, eu perguntei se funciona em vb6 pois quero fazer isso via código

    Esse serviço vai rodar em uma máquina windows 2000.
    quinta-feira, 4 de junho de 2009 14:01
  • Qual é o objetivo final disso? Só alterar a localização padrão dos usuários criados?
     
    Se for isso, tem como mudar no registro do container Users para qualquer outro container ou OU.
     
    []s,
     

    --
    Vinicius Canto Xavier
    MVP Scripting - Admin Frameworks - PowerShell
     
    Blog sobre scripting e powershell: http://viniciuscanto.blogspot. com
     
    "Lissandra" wrote in message news:4129c666-3356-40f e-8387-63a5d93c873a...
    Olá Josiel, obrigada

    vou dar uma olha, eu perguntei se funciona em vb6 pois quero fazer isso via código

    Esse serviço vai rodar em uma máquina windows 2000.
    sexta-feira, 5 de junho de 2009 02:15
    Moderador
  • Olá Vinicius, o meu objetivo é pegar um usuário determinado e trocar da CN=Users para uma OU especifica chamada OUAposentados. E devo passar o nome do usuário ou o login como parametro e move-lo para esta OU.
    sexta-feira, 5 de junho de 2009 17:16
  • Você esta procurando um script parecido com este?

    dsquery user OU=sua ou,DC=nome do seu dominio -inactive 02 |dsmod user -disabled yes

    Espero ter ajudado

    sexta-feira, 27 de setembro de 2013 19:35
  • Lissandra,

    Você pode usar o dsquery|dsmove a partir do VB6, basta usar Shell.

    Shell and ShellExecute function

    http://www.developerfusion.com/article/9/shell-and-shellexecute-function/


    Fábio de Paula Junior

    sexta-feira, 27 de setembro de 2013 20:32
    Moderador
  • veja se esse serve:


    primeiro coloco com os usuários com determinado período de inatividade como desabilitado (inativos) depois um (dsmove) move para uma outra OU. para vc excluir posteriormente quando e se quiser.

    dnscmd /clearcache
    dsquery user OU=xxxxx,OU=xxxxx,DC=xxxxxx,DC=xxxxx -inactive 8 -limit 600| dsmod user -disabled yes
    for /f "tokens=*" %%s in ('dsquery user -inactive 8') do DSMOVE %%s -newparent "OU=ParaExcluir,dc=xxxxx,dc=xxxxx"

    segunda-feira, 9 de outubro de 2017 12:47