Számítógép aktivitás rögzítése

Sziasztok!

Hálózatunkban rengeteg gép van, ami megy folyamatosan, és nem használják, ennek monitorozására lenne szükségünk programra.
Windows XP, Windows 7, Windows 8.1 gépeink vannak, tartományban.
Olyan megoldást keresek, amivel lehet rögzíteni a gépeken pl. az egér mozgást, vagy billentyűzet, vagy mindkettő, de nem rögzíthetjük a leütött karaktereket.
Az lenne a megfelelő, ha a user nem látná a gépén (szervizként fut) vagy hidden whatever.

Találtunk egy mousotron nevű programot, ami szépen el is küldi POST-tal php-nak, működik is. Rengeteg hátránya van, pl. más felhasználó jelentkezik be, akkor már nem fut, annak is telepíteni kell, msi installer nincs.

Az nem lenne rossz, ha egy szerverre tudná küldeni az infókat, vagy központosítani lehetne.

Ki milyen megoldást javasol erre?

Hozzászólások

Az lenne a megfelelő, ha a user nem látná a gépén

Ez így törvényes?

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Szerintem azzal gond van, ha úgy figyelik a dolgozót, hogy erről ő nem tud. Véleményem szerint nem csak a konkrét tevékenység figyelése aggályos. Ha a dolgozóval aláíratják, hogy az aktivitás, a tevékenység figyelve van, tehát a dolgozó tud róla, úgy rendben ven a dolog. Úgy viszont nem, ha ő erről nem tud.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ha login screenen, vagy valamilyen módon figyelmeztetik, akkor igen. Nálunk is fut automata monitorozás a géphasználatról, szóltak is róla, ahogy kell, rajta van a szöveg a bejelentkező képernyőn. De a service csak a háttérben fut "valahol".
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods

„… nem használják, ennek monitorozására lenne szükségünk programra.”

Kérdéseim:

1./ Ezt miért nem láthatja a felhasználó, ha nem tároljátok el a leütött billentyűk kódját?
2./ Ha sikerül rögzíteni egy központi adatbázisban a használatot/nem használatot, akkor mennyivel lesz jobb?

Ha csak használat/nem használat rögzítése kell akkor nem ez a legjobb módszer.


void Timer1Tick(object sender, EventArgs e)
		{
			LASTINPUTINFO lii = new LASTINPUTINFO();
		        lii.cbSize = (uint)Marshal.SizeOf(lii);
			lii.dwTime = 0;
			GetLastInputInfo(ref lii);
			label1.Text="A (f)elhasználó "+ ((Environment.TickCount-lii.dwTime)/1000).ToString() +" másodperce nem csinál semmit!";		}
	}

https://msdn.microsoft.com/en-us/library/windows/desktop/ms646302(v=vs…

Max egy óra írni rá egy servicet (lehet öt perc ha valaki csinált már :)).

Közben kipróbáltam, úgy tűnik ezzel a módszerrel szolgáltatásként nem menne. (mert ugye az "Helyi Rendszerfiók"-ként fut)

GetLastInputInfo provides session-specific user input information for only the session that invoked the function.

Olyat lehetne írni ami minden felhasználónál elindul és X percenként postol, hogy az előző X percben volt-e aktivitás.

De mi a celod ezzel? Lekapcsolni a nem hasznalt gepeket, vagy azt figyelni, hogy mit csinalnak rajta, amikor hasznaljak?

Ha az elobbi, akkor allitsatok be, hogy x perc inaktivitas utan suspendeljen le magatol. Ha a kozben a logokat tovabbitjatok a gepekrol valami kozponti szerverre, akkor abbol valoszinuleg az is latszik, mennyit kapcsoljak vissza a gepet > melyiket mennyire hasznaljak.

Mint fentebb javasolták: X perc inaktivitás után hibernálás/suspend. Utána hetente, vagy havonta a logokból kinyerni, hogy mennyi időt töltöttek hibernált állapotban. A PowerShellt nem ismerem, de amit olvastam róla, aszerint alkalmas rá. Van itt több szakértő, akit tud ebben segíteni neked.

Nem kell mindig kifordítva dolgozni. Meg kell nézni a szerződéseket, feledatköröket,munkaköri leírást, jogosultdágokat, stb. Mindjárt kiderül, kinek kell a munkájához gép, kinek nem. Ez kell legyen az első lépcső. Utána esetleg, meg lehetne nézni, akinek a gép kell, de miért nem dolgozik rajta kategóriát. Mindjárt 1/3-ra csökkenne a géppark.

Egy volt munkahelyemen volt az divat, hogy bizonyos, nem szemelyhez kotott gepeket folyamatosan, ejjel is bekapcsolva tartottak, mert nem az en dolgom/nem erdekel/nincs kedvem kivarni, mig reggel bebootol, pedig napi 2-3 oranal hosszabb ideig nem volt rajuk szukseg. Ez azon tul, hogy pazarlas, a tuzvedelmi szabalyzatba is utkozott, ami szerint ejszakara teljesen aramtalanitani kellett volna.
Amikor mar sokadik alkalommal kapcsoltam en ki nap vegen az erintett gepeket, teljesen normalis stilusban es hangnemben megkertem a leginkabb igy mukodo kolleganot, hogy ugyan kapcsolja mar ki, mielott hazamegy, akkor kioktatott, hogy en kis pocs (aaah a 23 eves let oromei) csak ne parancsolgassak neki.
Na akkor en is csinaltam egy statot, hogy az erintett gepek mennyit vannak bekapcsolva es ebbol mennyit hasznaljak.

Azt nem írta a kolléga. Ha van akkor jogos. Esetleg auto suspend? Persze ettől még áram alatt lesz a berendezés.
Esetleg valami 3rd party app, x időnként kötelező user/pass auth (ebédidőt skippelve), és mondjuk 15 perc timeout -> auto shutdown.
Talán még képernyővédőt is lehetne írni olyat, hogy pl. ebédidőn kívül, fél óra futás után shutdown-t hívjon.

____________________
echo crash > /dev/kmem

Nem volt teljesen kotott a munkaido, de nagyjabol be lehetett loni, hogy mettol meddig nem lehet ott senki. Az auto suspendet eleg hamar beallitottam, de leallitast, kijelentkeztetest nem akartam, nehogy elvesszen valakinek valami nyitva hagyott, nem mentett munkaja. Meg az aramtalanitast amugy sem oldotta volna meg.

Nálunk meg volt olyan is amikor a rendszergazdák "utasítottak" minket - felhasználókat-, hogy ne kapcsoljuk ki a gépeket, mert a teljes víruskergetés 02ó:00p-kor indul el.
Mi pedig felhívtuk a figyelmüket a tűzvédelmi szabályzatban leírtakra, miszerint munka végeztével gép kikapcs. Csönd lett....
(Nem mintha jobb lenne munka közben vírust kerestetni. Viszont majd mindegy, ha a win7 frissítés "random" megfogja a gépeket és még a háttérben futó processt sem látod, hogy mi az ami, mert jogod nincs rá.)

Windows security logból ki lehet bányászni mikor volt a gép utoljára lelockolva és unlockolva, az nem lenne elég? WinRM-mel még távolról is le tudod kérni. Ha gondolod, kikeresem neked a pontos event id-kat.

Szerk: ezeket használtam egy hasonló feladathoz:

  • power on:
    Log = "System"; Source = "Microsoft-Windows-Kernel-General"; Id = 12
  • power off:
    Log = "System"; Source = "Microsoft-Windows-Kernel-General"; Id = 13
  • unlock:
    Log = "Security"; Source = "Microsoft-Windows-Security-Auditing"; Id = 4801
  • lock:
    Log = "Security"; Source = "Microsoft-Windows-Security-Auditing"; Id = 4800
  • wake up:
    Log = "System"; Source = "Microsoft-Windows-Kernel-Power"; Id = 107
  • sleep:
    Log = "System"; Source = "Microsoft-Windows-Kernel-Power"; Id = 42

Emlékeim szerint group policy-ben van lehetőség a gép ki- és bekapcsolásakor futtatni valamit. A ki- és belépés kapcsán futtatni valamit.
Talán a képernyővédőre vagy inaktivitásra is köthető valami.

Régi samba + xp kombinációban láttam ilyen megoldást, ott wget volt a gépekre telepítve, meg a bat scriptek is manuálisan voltak feltéve és a group policyben hozzáadva. De Ms környezetben gondolom ez központilag is megadható, telepíthető. A bekapcsolva hagyott gépeket pedig remote net rpc hívással lőtte ki egy job a szerverről meghívva az ip-ikre.

Ha pedig okosan van gyűjtve az adat és valami adatbázisba rögzítve, akkor abból már elvileg ki lehet hozni valami statisztikát, hogy melyik gép mikor mennyit volt használaton kívül. Akár szép színes naptárat is lehet generálni, ahol gépenként látszik az állapot.

Szóval ha tisztázódott, hogy statisztikát kell gyűjteni a selejtezendő, nem használt pécék kiszűréséhez vagy ki kell kapcsolni őket éjszakára, akkor utána van azért pár lehetőség.

odáig el is jutottam, hogy írtam c#-ban egy programocskát ami figyel. Már csak annyi van vissza, hogy figyeljem a változót valahogy ha változik, és autó küldi is az idle time-ot.

Erre egy inventory manager a legjobb. Feltelepititek mindenhova az MS megfelelo megoldasaval (mittomen mi az), majd az begyujti az infokat. Onnantol lehet rogziteni, hogy kihez tartozik. Majd lehet auditalni az adatbazis tartalmat. Kinel van ket-harom gep/eszkoz, stb.