none
Como bloquear ou desabilitar usuário no AD que estiver sem se logar durante um tempo?

    Question

  • Boa tarde pessoal,

    Existe alguma forma no AD ou script para bloquear um usuário automaticamente se ele ficar sem se logar durante 30 dias por exemplo?

    Abraço
    Friday, November 13, 2009 6:04 PM

Answers

  • Boa tarde,

    Veja se isso te ajuda...

    dsquery user -inactive 4 | dsmod user -disabled yes

    Lembra que o numero "4" equivale ao numero de semanas e outra coisa importante é o nivel funcional que deve ser 2003.

    []s

    Erick Albuquerque | WinSec.org | PortalTecnologia.net
    Friday, November 13, 2009 6:32 PM

All replies

  • Boa tarde,

    Veja se isso te ajuda...

    dsquery user -inactive 4 | dsmod user -disabled yes

    Lembra que o numero "4" equivale ao numero de semanas e outra coisa importante é o nivel funcional que deve ser 2003.

    []s

    Erick Albuquerque | WinSec.org | PortalTecnologia.net
    Friday, November 13, 2009 6:32 PM
  • completando,

    adiciona isso a um schedule diário... arquivo .bat...
    Se a dica foi útil, por favor indique-a. | http://dfoggi.spaces.msn.com
    Friday, November 13, 2009 6:39 PM
  • Boa Erick

    Caso a reposta tenha resolvido por favor Marque esse post como "RESPOSTA" para que se encerre essa Thread. E se lhe foi util também Marque como "votar como util" Caso não tenha resolvido, sinta-se a vontade para fazer novas perguntas. Boa sorte MCP - Win2k3 server MCP - Windows XP
    Friday, November 13, 2009 6:43 PM
  • Correto Deivid, esqueci deste detalhe.

    Um abraço,
    Erick Albuquerque | WinSec.org | PortalTecnologia.net
    Friday, November 13, 2009 7:04 PM
  • Se o nivel do seu dominio for 2003, então usa a dica do erick que é show.

    Se não for, pode usar esse script:
    A lista de usuários desabilados vai estar no c:

    '-------------------------------- inicio ------------------------------
    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 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) ' 512 = Enable, 514 = Disable. intAccValue = 514 objUser.Put "userAccountControl", intAccValue objUser.SetInfo Loop log_users.close
    msgbox "TERMINOU"
    '-------------------------------- fim ------------------------------

    Filipssss - o.0 Só pra contrariar... hehe
    Friday, November 13, 2009 7:04 PM