Często bywa tak, iż jako administratorzy dostajemy polecenie sprawdzenia kto, kiedy i skąd się logował do serwera. Można to sprawdzić na wiele sposobów. Niestety sposoby standardowe polegające na śledzeniu logów systemowych stacji roboczych i serwera są czasochłonne i pracochłonne. Przegrzebywanie się przez setki wpisów w logach jest żmudną pracą. Efekt jakiego oczekuje pracodawca można uzyskać szybciej i sprawniej robiąc prosty trick.
Możemy wykorzystać zmienne systemowe: %date% %time% %computername% %sessionname% do napisania prostego skryptu, który zapisuje do plików tekstowych parametry użytkownika i stacji roboczej podczas logowania i wylogowywania się z serwera.
Jako, że plik wynikowy możemy zrobić w formacie CSV, możemy go szybko i łatwo otworzyć w Excelu, przez co filtrowanie wyników to już kwestia sekund, a nie minut czy godzin aby znaleźć kto logował się do serwera.
Skrypt w pliku .cmd powinien wyglądać następująco:
LOGOWANIE:
@echo off
set FilePath="\\srv1\AutoInstall$\LOG-LogonUsers\LogOnTimes.csv"
echo ZALOGOWANIE;%Date%;%Time:~0,8%;%ComputerName%;%UserName%;%sessionname% >> %FilePath%
exit
WYLOGOWANIE:
@echo off
set FilePath="\\srv1\AutoInstall$\LOG-LogonUsers\LogOnTimes.csv"
echo WYLOGOWANIE;%Date%;%Time:~0,8%;%ComputerName%;%UserName%;%sessionname% >> %FilePath%
exit
Skrypty umieszczamy na serwerze w Group Policy w sekcji: User Configuration -> Policies -> Windows Settings -> Logoff / Logon
Przykładowy wpis w pliku wynikowym powinien wyglądać następująco:
ZALOGOWANIE; 2010-07-10;15:06:23; NAZWASTACJI; imie.nazwisko;Console
WYLOGOWANIE; 2010-07-10;16:06:52; NAZWASTACJI; imie.nazwisko;Console
Niestety logowania do stacji roboczej z wyciągniętym kablem sieciowym nie uruchomią skryptu, przez co nie będziemy o nich wiedzieć. Rozwiązaniem jest wyłączenie cached credentials dla użytkowników lokalnych.
Więcej ciekawostek znajdziesz na naszym blogu.