{"id":957,"date":"2011-09-26T16:50:40","date_gmt":"2011-09-26T14:50:40","guid":{"rendered":"http:\/\/blog.sfsoft.it\/?p=957"},"modified":"2011-09-26T16:53:20","modified_gmt":"2011-09-26T14:53:20","slug":"loggare-i-logonlogoff-degli-utenti-su-active-directory","status":"publish","type":"post","link":"http:\/\/www.sfsoft.it\/blog\/2011\/09\/26\/loggare-i-logonlogoff-degli-utenti-su-active-directory\/","title":{"rendered":"Loggare i LOGON\/LOGOFF degli utenti su Active Directory"},"content":{"rendered":"<p>Nel caso ci fosse la necessit\u00e0 di avere una soluzione pratica e veloce per tenere traccia delle operazioni di <em>logon\/logoff<\/em> \u00e8 sufficente creare un paio di <em>script batch<\/em> e appoggiarsi alle <em>GPO<\/em> ( <em>Group Policy<\/em> ) di <em>Active Directory<\/em>.<\/p>\n<p>La soluzione pi\u00f9 veloce da attuare ( ma anche quella meno sicura ) consiste nel creare un paio di <em>script batch<\/em> che si occupino di creare dei file di log in cui salvino le operazioni di <em>logon\/logoff<\/em>.<\/p>\n<p>Si crea quindi una cartella condivisa sul <em>Domain Controller<\/em> che sia accessibile a tutti in lettura\/scrittura ( e qui sta la poca sicurezza che dicevo sopra, chiunque se scopre il percorso di log pu\u00f2 cancellare e\/o modificare i log, sta all&#8217;amministratore adottare la politica di sicurezza migliore per la situazione in cui si trova ), esempio <em>\\\\SERVER\\PATH<\/em>.<\/p>\n<p>Esempio <em>script<\/em> per il <em>logon<\/em>:<\/p>\n<pre class=\"brush: text; gutter: true; first-line: 1\">@echo off\r\nrem Ricava la data per usarla come parametro nel nome file\r\nfor \/f \"tokens=1 delims=.:\/-, \" %%u in ('date \/t') do set CURR_DAY=%%u\r\nfor \/f \"tokens=2 delims=.:\/-, \" %%u in ('date \/t') do set CURR_MONTH=%%u\r\nfor \/f \"tokens=3 delims=.:\/-, \" %%u in ('date \/t') do set CURR_YEAR=%%u\r\n\r\nrem Esegue la segnalazione di che utente si (s)collega a tal computer\r\necho Log On %DATE% %TIME% %USERNAME% &gt;&gt; \\\\SERVER\\PATH\\%COMPUTERNAME%-%CURR_YEAR%-%CURR_MONTH%-%CURR_DAY%.log\r\n\r\nrem Esegue la segnalazione di quale computer si \u00e8 (s)collegato tal utente\r\necho Log On %DATE% %TIME% %COMPUTERNAME% &gt;&gt; \\\\SERVER\\PATH\\%USERNAME%-%CURR_YEAR%-%CURR_MONTH%-%CURR_DAY%.log<\/pre>\n<p>Per quanto riguarda lo <em>script<\/em> per il <em>logoff<\/em> non sto a ripeterlo due volte in quanto \u00e8 uguale a quello del <em>logon<\/em>, cambia solo il testo nel log da &#8220;Log On&#8221; a &#8220;Log Off&#8221;.<\/p>\n<p>Una volta che abbiamo creato i due <em>script<\/em> esempio con nome <em>LOGON.CMD<\/em> e <em>LOGOFF.CMD<\/em> li salviamo nel percorso comune <em>\\\\SERVER\\PATH<\/em>.<\/p>\n<p>Ora sempre dal <em>Domain Controller<\/em> andiamo a editare il nostro <em>GPO<\/em>, apriamo la nostra gestione <em>Manage users and computers in Active Directory<\/em>, clicchiamo con il tasto destro sul nostro dominio e scegliamo <em>Properties<\/em>, ci spostiamo nella sezione <em>Group Policy<\/em>, selezionamo la voce <em>Default Group Policy<\/em> e clicchiamo sul pulsante <em>Edit<\/em>, apriamo <em>User Configuration<\/em>, apriamo <em>Windows Settings<\/em> e clicchiamo su <em>Scripts (Logon\/Logoff)<\/em>.<\/p>\n<p>A questo punto nella finestra a destra avremo due voci, <em>Logon<\/em> e <em>Logoff<\/em>, le selezioniamo e clicchiamo sul collegamento <em>Properties<\/em> a sinistra, poi clicchiamo sul pulsante <em>Add<\/em> e infine nel campo <em>Script Name<\/em> andiamo a indicare il percorso del nostro <em>script di logon<\/em> ( <em>\\\\SERVER\\PATH\\LOGON.CMD<\/em> ) o <em>logoff<\/em> che sia ( <em>\\\\SERVER\\PATH\\LOGOFF.CMD<\/em> ).<\/p>\n<p>Confermiamo tutte le finestre e chiudiamo il nostro <em>GPO<\/em>.<\/p>\n<p>A questo punto basta fare un <em>logon\/logoff<\/em> con un utente qualsiasi su un computer e vedremo creare e aggiornare i nostri file di log.<\/p>\n<p>Una soluzione invece un pelo pi\u00f9 sicura potrebbe essere il registrare questi log su un database esempio <em>MySQL<\/em>, serve per\u00f2 prepararsi una pagina ( es. in <em>PHP<\/em> ) che riceva dei parametri e li inserisca sul <em>database<\/em>.<\/p>\n<p>Dentro ai nostri <em>script batch<\/em> sopra citati \u00e8 sufficente far richiamare la pagina in questione, magari con il programma <a href=\"http:\/\/gnuwin32.sourceforge.net\/packages\/wget.htm\" target=\"_blank\">wget per Windows<\/a> o uno simile, passando via <em>GET<\/em> i parametri da loggare, esempio per il <em>logon<\/em>:<\/p>\n<pre class=\"brush: powershell; gutter: true; first-line: 1\">wget http:\/\/server\/log.php?action=logon&amp;username=%USERNAME%&amp;computer=%COMPUTERNAME%<\/pre>\n<p>o per il <em>logoff<\/em>:<\/p>\n<pre class=\"brush: powershell; gutter: true; first-line: 1\">wget http:\/\/server\/log.php?action=logoff&amp;username=%USERNAME%&amp;computer=%COMPUTERNAME%<\/pre>\n<p>Non sto a creare l&#8217;esempio della pagina PHP in quanto sono operazioni di programmazione molto basilari reperibili facilmente in rete e non riguardano l&#8217;argomento trattato.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nel caso ci fosse la necessit\u00e0 di avere una soluzione pratica e veloce per tenere traccia delle operazioni di logon\/logoff \u00e8 sufficente creare un paio di script batch e appoggiarsi alle GPO ( Group Policy ) di Active Directory. La soluzione pi\u00f9 veloce da attuare ( ma anche quella meno sicura ) consiste nel creare [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,138,31],"tags":[83,16,142,35],"_links":{"self":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/957"}],"collection":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/comments?post=957"}],"version-history":[{"count":4,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/957\/revisions"}],"predecessor-version":[{"id":959,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/957\/revisions\/959"}],"wp:attachment":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/media?parent=957"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/categories?post=957"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/tags?post=957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}