none
Informazioni AD su ultimo accesso effettuato da un utente RRS feed

  • Domanda

  • Ciao a tutti,

    ho un dominio con Windows Server 2008.

    vorrei sapere come si fa a conoscere l'ultimo accesso effettuato da un utente nel mio dominio.

    Per fare ciò ho tulizzato ldp e cercato l'utente in questione. Ma guardando  l'attributo "lastLogon"  questo vale  "01/01/1601 01:00:00 ora solare Europa occidentale ora legale Europa occidentale;"

    Cosa significa? Quest'utente non ha mai acceduto alla rete o forse è così tanto tempo (magari 1 anno o più) che non accede e tale informazione non è più disponibile? Inoltre "pwdLastSet" vale "01/01/1601 01:00:00 ora solare Europa occidentale ora legale Europa occidentale;"

    Se invece uso il seguente script:

    'ADS_SCOPE_SUBTREE specifies the depth of the search operation performed against the BaseDN
    'I suggest you to use cscript.exe from a command prompt to redirect the output of this script on a text file
     
    On Error Resume Next
     
    'Set here the depth of the search operation performed against the BaseDN
    Const ADS_SCOPE_SUBTREE = 30

    'Set here the LDAP Domain Name
    strLDAPDomain = "dc=dominio,dc=local"

    'Set here the LDAP BaseDN
    strLDAPBaseDN = "dc=dominio,dc=local"

    Const ADS_UF_ACCOUNTDISABLE  = 2
    Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection
     
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

    objCommand.CommandText = _ 
     "SELECT ADsPath,Name,userAccountControl FROM 'LDAP://" & strLDAPBaseDN &"' WHERE objectCategory='User'"
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

    Wscript.Echo "User Name" & vbTab & "Account Status" & vbTab & "Account Expiration Date" & vbTab & "Password Status" & vbTab & "Password Expiration Date: " & vbTab & "Last Password Change: " & vbTab & "Last Login: "

    Do Until objRecordSet.EOF
     strPath = objRecordSet.Fields("ADsPath").Value
     Set objUser = GetObject(strPath)
     Set objDomain = GetObject("LDAP://" & strLDAPDomain)
     strPasswordChangeDate = ""
     strAccExpDate = ""
     strLastLogin = ""
     strAccountDisabled =""
     'strAccountDisabled ="Account Enabled"
     strPwdExpires = "Password Expires"
     Set maxPwdAge = objDomain.maxPwdAge
     wscript.echo objUser.maxPwdAge
     numDays = CCur((maxPwdAge.HighPart * 2 ^ 32) + maxPwdAge.LowPart) / CCur(-864000000000)
     
     strName = objRecordSet.Fields("Name").Value
     strPwdLastSet = objUser.PasswordLastChanged
     strAccExpDate = objUser.AccountExpirationDate
     strLastLogin = objUser.LastLogin
     strPwdExpirationDate = DateAdd("d", numDays, objUser.PasswordLastChanged)
     intUAC = objRecordset.Fields("userAccountControl").Value
     boolAccountDisabled = objUser.AccountDisabled


     'If (intUAC AND ADS_UF_ACCOUNTDISABLE) Then
      'strAccountDisabled = "Account Disabled"
     'End If

     If boolAccountDisabled Then
      strAccountDisabled = "Account Disabled"
     Else
      strAccountDisabled = "Account Enabled"
     End If

     If (intUAC AND ADS_UF_DONT_EXPIRE_PASSWD) Then
      strPwdExpires = "Password Never Expires"
     End If

     Wscript.Echo strName & vbTab & strAccountDisabled & vbTab & strAccExpDate & vbTab & strPwdExpires & vbTab & strPwdExpirationDate & vbTab & strPwdLastSet & vbTab & strLastLogin

     objRecordSet.MoveNext
    Loop

    ---------

    Nell'elenco che ottengo l'utente in questione ha impostato "Last Password Change" con "25/11/2010 08:25:05" e "Last Login" vuoto.

    Non capisco quali siano i valori corretti, inoltre la data 01/01/1601 che significato ha? Vuol dire come non impostata? I dati di accesso per quanto tempo vengono salvati nel dominio?

    Grazie a tutti per i chiarimenti che mi darete.

     

    Alessio

    mercoledì 26 gennaio 2011 09:00

Risposte

  • Secondo me stai affrontando il problema con un approccio che potrebbe complicarti la vita.

    Abilitando l'audit di sicurezza (cosa tra l'altro richiesta dal garante sulla privacy) ti basterebbe poi fare un filtro degli eventi nel log di sicurezza per avere informazioni affidabili sui logon / logoff e sui cambi password.

    Un articolo (tra i molti) per avere un'idea di massima :

    http://www.brighthub.com/computing/windows-platform/articles/26885.aspx

     


    Fabrizio Volpe
    MVP Directory Services
    MCSE (NT4)(2000)(2003) - MCSA (2003)
    MCTS (SQL 2005)(Exchange 2007)(Windows 2008)
    Fortinet Certified Network Security Professional (FCNSP)
    Fabrizio[_dot_]Volpe[_at_]GMX[_dot_]com
    mercoledì 26 gennaio 2011 09:39

Tutte le risposte

  • Secondo me stai affrontando il problema con un approccio che potrebbe complicarti la vita.

    Abilitando l'audit di sicurezza (cosa tra l'altro richiesta dal garante sulla privacy) ti basterebbe poi fare un filtro degli eventi nel log di sicurezza per avere informazioni affidabili sui logon / logoff e sui cambi password.

    Un articolo (tra i molti) per avere un'idea di massima :

    http://www.brighthub.com/computing/windows-platform/articles/26885.aspx

     


    Fabrizio Volpe
    MVP Directory Services
    MCSE (NT4)(2000)(2003) - MCSA (2003)
    MCTS (SQL 2005)(Exchange 2007)(Windows 2008)
    Fortinet Certified Network Security Professional (FCNSP)
    Fabrizio[_dot_]Volpe[_at_]GMX[_dot_]com
    mercoledì 26 gennaio 2011 09:39
  • Grazie per l'informazione,

    ho subito seguito ed applicato ciò che mi hai indicato.

    Comunque per il pregresso il problema rimane, mi sai dare qualche dritta nel caso che ti ho indicato?

     

    Grazie

    mercoledì 26 gennaio 2011 10:16
  • Il problema è che l'attributo lastologon NON viene replicato fra i domain controllers.

    E comunque, un valore 0 implica semplicemente che l'informazione non è nota (non che l'utente non abbia mai fatto accesso).

    Puoi provare lo script presente qui (che è anche spiegato in maniera soddisfacente)

    http://technet.microsoft.com/it-it/magazine/2006.01.scriptingguy(en-us).aspx

    P.S.

    Per i security log, ricordati anche di impostare un salvataggio periodico, visto che sempre per il discorso della privacy li devi conservare per alcuni mesi :-)


    Fabrizio Volpe
    MVP Directory Services
    MCSE (NT4)(2000)(2003) - MCSA (2003)
    MCTS (SQL 2005)(Exchange 2007)(Windows 2008)
    Fortinet Certified Network Security Professional (FCNSP)
    Fabrizio[_dot_]Volpe[_at_]GMX[_dot_]com
    mercoledì 26 gennaio 2011 10:36
  • Ti riingrazio per tutte le info, ma io sapevo che i log di accesso dovevano essere salvati ma solo quelli relativi all'accesso degli utenti amministratori e non di tutti gli utenti... o sbaglio?
    mercoledì 26 gennaio 2011 11:01
  • In effetti il concetto di amministratore sembra sia da interpretare nel senso più ampio (ti allego l'articolo ed evidenzio una parte delle FAQ).

    Di base poi, in ambiente Windows, il controllo dei logon e attività password è automaticamente effettuato per tutti gli utenti, il che lascia poco spazio alle scelte :-)

    http://www.garanteprivacy.it/garante/doc.jsp?ID=1577499#4

     

    4) Relativamente all'obbligo di registrazione degli accessi logici degli AdS, sono compresi anche i sistemi client oltre che quelli  server?
    Si, anche i client, intesi come "postazioni di lavoro informatizzate", sono compresi tra i sistemi per cui devono essere registrati gli accessi degli AdS.

    Nei casi più semplici tale requisito può essere soddisfatto tramite funzionalità già disponibili nei più diffusi sistemi operativi, senza richiedere necessariamente l'uso di strumenti software o hardware aggiuntivi. Per esempio, la registrazione locale dei dati di accesso su una postazione, in determinati contesti, può essere ritenuta idonea al corretto adempimento qualora goda di sufficienti garanzie di integrità.

    Sarà comunque con valutazione del titolare che dovrà essere considerata l'idoneità degli strumenti disponibili oppure l'adozione di strumenti più sofisticati, quali la raccolta dei log centralizzata e l'utilizzo di dispositivi non riscrivibili o di tecniche crittografiche per la verifica dell'integrità delle registrazioni.

     


    Fabrizio Volpe
    MVP Directory Services
    MCSE (NT4)(2000)(2003) - MCSA (2003)
    MCTS (SQL 2005)(Exchange 2007)(Windows 2008)
    Fortinet Certified Network Security Professional (FCNSP)
    Fabrizio[_dot_]Volpe[_at_]GMX[_dot_]com
    mercoledì 26 gennaio 2011 11:06
  • Grazie tante per tutto!!

    Ddato che sei così gentile dopo il chiarimento sulle date che mi hai dato ti chiedo se esiste una gpo che mi permetta di disabilitare tutti quegli utenti che non effettuano un logon al sistema per un periodo di tempo prefissato (ed esempio 90 gg).

     

    mercoledì 26 gennaio 2011 11:24
  • Nativamente non c'è nulla.

    Io uso UAF per il disable e/0 le rimozione di utenti e computers non utilizzati

    http://anixis.com/products/uaf/default.htm


    Fabrizio Volpe
    MVP Directory Services
    MCSE (NT4)(2000)(2003) - MCSA (2003)
    MCTS (SQL 2005)(Exchange 2007)(Windows 2008)
    Fortinet Certified Network Security Professional (FCNSP)
    Fabrizio[_dot_]Volpe[_at_]GMX[_dot_]com
    mercoledì 26 gennaio 2011 11:26
  • Grazie di tutto

    Spero a buon rendere.

     

    Alessio

    mercoledì 26 gennaio 2011 11:38