Anzitutto bisognerà creare una nuova cartella in c:\windows\logs chiamata LogonLogs
Mkdir %WINDIR%\logs\LogonLogs
Create un file TraceLogon.bat in una cartella condivisa raggiungibile da qualsiasi PC nel dominio quindi modificate il file dello script di logon (dovrebbe essere nella cartella \\nomedominio\netlogon) ed aggiungete una riga che punti al file .bat.
Il file Tracelogon.bat conterrà i seguenti comandi:
@echo off
set GIORNOMESE=%date:~0,2%
SET FileDiLog=\\server\condivisione\\Logon-giorno%GIORNOMESE%.Log
set TAB=
echo. >>%FileDiLog%
REM ========= VERIFICA TIPO OS ===============
FOR /F "TOKENS=1 DELIMS=." %%O IN ('wmic path Win32_OperatingSystem get version ^| FIND /i "."') DO SET TipoOS=%%O
FOR /F "TOKENS=1 DELIMS=" %%P IN ('wmic path Win32_OperatingSystem get caption ^| FIND /i "Windows"') DO SET DescrizioneOS=%%P
echo =================================
echo ================================= >>%FileDiLog%
REM ========= DATA ORA ===============
for /f "tokens=1-4 delims=/ " %%a in ('date /T') do set day=%%a
for /f "tokens=2 delims=/ " %%b in ('date /T') do set month=%%b
for /f "tokens=3 delims=/ " %%c in ('date /T') do set year=%%c
set TODAY=%day%-%month%-%year%
for /f "tokens=1 delims=: " %%h in ('time /T') do set hour=%%h
for /f "tokens=2 delims=: " %%m in ('time /T') do set minutes=%%m
set NOW=%hour% %minutes%
echo Ora%TAB%%TODAY% %NOW%
echo Ora%TAB%%TODAY% %NOW%>>%FileDiLog%
REM ========= UTENTE, NOME COMPUTER ===============
echo Utente%TAB%%USERNAME%
echo Utente%TAB%%USERNAME%>>%FileDiLog%
echo PC%TAB%%COMPUTERNAME%
echo PC%TAB%%COMPUTERNAME%>>%FileDiLog%
echo OS%TAB%%DescrizioneOS%
echo OS%TAB%%DescrizioneOS% >>%FileDiLog%
REM ========= INDIRIZZO IP ===============
SET IPADDR=
SET OLDIPADDR=
setlocal ENABLEDELAYEDEXPANSION
if [%TipoOS%]==[5] (set COMANDONETSH1=netsh interface ip show address) ELSE (set COMANDONETSH1=netsh interface ipv4 show addresses)
FOR /F "TOKENS=2* DELIMS= " %%A IN ('%COMANDONETSH1% ^| FIND /i "IP"') DO call :AggiungiIPADDR %%B
echo IP%TAB%%IPADDR%>>%FileDiLog%
endlocal
goto fine-ipaddr
:AggiungiIPADDR
set IP=%1
echo IP%TAB%!IP!
SET IPADDR=!IPADDR!!IP!%TAB%
goto :eof
:fine-ipaddr
REM ========= INDIRIZZI MAC ===============
setlocal ENABLEDELAYEDEXPANSION
FOR /F "TOKENS=1,2 DELIMS=:" %%A IN ('ipconfig /all ^| FIND /i "fisico"') DO call :AggiungiMAC "%%A" "%%B"
echo MAC%TAB%%ListaMAC%>>%FileDiLog%
endlocal
goto fine-MAC
:AggiungiMAC
if %2=="" (
set MAC=%1
set MAC=!MAC: =!
set MAC=!MAC:"=!
echo MAC%TAB%!MAC!
SET ListaMAC=!ListaMAC!!MAC!%TAB%
set MAC=
) else (
set MAC=%2
set MAC=!MAC: =!
set MAC=!MAC:"=!
echo MAC%TAB%!MAC!
SET ListaMAC=!ListaMAC!!MAC!%TAB%
set MAC=
)
goto :eof
:fine-MAC
REM ========= INDIRIZZO DNS ===============
SET IPADDR=
SET OLDIPADDR=
if [%TipoOS%]==[5] (set COMANDONETSH2=netsh interface ip show dns) ELSE (set COMANDONETSH2=netsh interface ipv4 show dnsserver)
setlocal ENABLEDELAYEDEXPANSION
FOR /F "TOKENS=1,2 DELIMS=:" %%A IN ('%COMANDONETSH2% ^| FIND /i "."') DO call :AggiungiDNS "%%A" "%%B"
echo DNS%TAB%%ListaDNS%>>%FileDiLog%
endlocal
goto fine-DNS
:AggiungiDNS
if %2=="" (
set DNS=%1
set DNS=!DNS: =!
set DNS=!DNS:"=!
echo DNS%TAB%!DNS!
SET ListaDNS=!ListaDNS!!DNS!%TAB%
set DNS=
) else (
set DNS=%2
set DNS=!DNS: =!
set DNS=!DNS:"=!
echo DNS%TAB%!DNS!
SET ListaDNS=!ListaDNS!!DNS!%TAB%
set DNS=
)
goto :eof
:fine-DNS
Ecco un esempio delle informazioni che il batch recupera:
================================= Ora 19-03-2015 03 26 Utente Pippo PC PC-20 OS Microsoft Windows 7 Professional IP 192.168.143.48 127.0.0.1 MAC C8-9C-DC-D0-6E-38 DNS 192.168.143.9 192.168.143.10
Create poi un file c:\Windows\System32\SpostaLogonLog.bat con il seguente contenuto:
@echo off
set CARTELLAORIGINE=c:\cartellacondivisa
set GIORNOMESE=%date:~0,2%
move /y %CARTELLAORIGINE%\Logon-Giorno*.log %WINDIR%\logs\LogonLogs
echo LOG DEGLI ACCESSI GIORNO %giornomese% > %CARTELLAORIGINE%\Logon-Giorno%giornomese%.log
Pianificate l’avvio del file SpostaLogonLog.bat (come amministratore) alle 0:00 ogni giorno.
Quindi potrete vedere nella cartella %WINDIR%\logs\LogonLogs tutti i files di log dell’ultimo mese.