HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Bejelentkezett felhasználók listázása


Példaprogram letöltése

2196 bájt

Kiszolgálókon és kiszolgálóként működő munkaállomásokon egyaránt jól jöhet, ha tudjuk, kik azok a személyek, akik pillanatnyilag be vannak jelentkezve és erőforrásokat használnak gépünkön. Bizonyos közösen használt programok frissítése, eltávolítása előtt tudjuk értesíteni őket és nem kell mindenkit végig telefonálni a cégen belül, hogy használja-e az adott programot és ha igen lépjen ki belőle.

Cikkünkhöz mellékeltünk egy "LoggedUsers.vbs" nevű VBScriptet, melyet az Intézőben lehet futtatni és megjeleníti a képernyőn a bejelentkezett felhasználók nevét. Használata előtt az első sorában meg kell adni a helyi gép nevét, alatta a "Domain"-be pedig a munkacsoport vagy tartomány nevét, ahol a gép található.
Az operációs rendszerből való kilépés előtt kapunk figyelmeztetést, ha vannak hálózaton keresztül bejelentkezett felhasználók. De mi van, ha nem a gépet akarjuk kikapcsolni, hanem egy közösen használt alkalmazást kell frissíteni? Vagy éppen az adatbázisát menteni? Nem a legjobb megoldás személyesen vagy telefonon felkeresni az összes szóba jöhető embert és megkérni: lépjen ki. Sokkal egyszerűbb, ha kilistáztatjuk a bejelentkezett egyéneket és célzottan értesítjük őket. Az alábbiakban három módszert ismertetünk, amivel ez megvalósítható.
Megosztott mappák és fájlok listázása felügyeleti konzol használattal
Rendelkezésünkre áll egy felügyeleti konzol, ahol minden információhoz hozzájuthatunk. A következő útvonalon érhető el:
Vezérlőpult > (Teljesítmény és karbantartás) > Felügyeleti eszközök > Számítógép-kezelés (Control Panel > (Performance and Maintenance) > Administrative Tools > Computer Management. A konzolfa "Rendszereszközök" ("System Tools") szekciójában kattintsunk a "Megosztott mappák" ("Shared Folders") előtti + jelre. Három tárolóval találkozunk: "Megosztások" ("Shares"), "Munkamenetek" ("Sessions") és "Megnyitott fájlok" ("Open Files"). Az elsőben kerülnek felsorolásra a gépen található megosztott mappák, illetve alapvető megosztások (C$, IPC$, stb.) - számunkra ez most nem érdekes. Érdekes viszont a "Munkamenetek" ("Sessions"). Minden bejelentkezett felhasználóhoz a folyamatos elérés érdekében rendel a Windows egy munkamenetet. Ezt egy bizonyos üresjárati idő eltelte után bontja, aminek az lesz a következménye, hogy ismét be kell jelentkezni egy erőforrás eléréséhez (lehet, hogy az operációs rendszer megteszi helyettünk és észre sem vesszük). A pillanatnyilag életképes munkameneteket itt látjuk felsorolva. Sajnos a konzol frissítése nem automatikus, így folyamatos nyitva tartása mellett időnként nyomjuk le az F5 funkcióbillentyűt (F5 = frissítés vagy ugyanez a Művelet > Frissítés (Action > Refresh) menü). Ha rákattintunk egy felhasználóra a jobboldali egérgombbal, akkor be tudjuk zárni a munkamenetét ("Munkamenet bezárása" ("Close Session")). Ha viszont a "Munkamenetek" ("Sessions") tárolóra kattintunk, akkor az összes munkamenetet bezárhatjuk ("Minden munkamenet kapcsolatának bontása" ("Disconnect All Sessions"). A "Megnyitott fájlok" ("Open Files") alatt azt látjuk, hogy mely fájlokat használják hálózaton keresztül.
Munkamenetek kezelése parancssorból
A munkamenetek parancssorból is elérhetők a következő utasítással:
net session
Az összes bezárása, pedig így lehetséges:
net session /delete
Lehetőség van a megnyitott fájlok megtekintésére is:
net file vagy net files
Minden fájlhoz tartozik egy azonosító (ID), ezzel lehet hivatkozni rá. A /Close kapcsoló végzi el az adott fájl bezárást, például:
net file 46 /Close
Ahol a 46 a bezárandó fájl azonosítója.
Bejelentkezett felhasználók listázása VBScript-el
Egy egyszerű ADSI szkripttel szintén megoldható a bejelentkezett felhasználók listázása. Kapcsolatot kell teremtenünk a "WinNT" szolgáltató "Lanmanserver" objektumával és a "Sessions" tulajdonsághalmazból ki kell válogatnunk a "Name" tulajdonságok értékeit.
Adjuk meg a lekérdezendő számítógép és munkacsoport (vagy tartomány) nevét.
Computer="Seattle"
Domain="Munkacsoport"
Ezután hozzuk létre a kapcsolatot a "WinNT" interfész, fent megadott munkacsoportjának (vagy tartományának), megadott nevű gépével és ezen is a "Lanmanserver" objektummal.
set oSession=GetObject("WinNT://"& Domain & "/" & Computer &"/Lanmanserver")
Végül egy ciklussal kérdezzük le és jelenítsük meg a képernyőn az összes "Name" tulajdonságot, ami egyenlő lesz a bejelentkezett felhasználók nevével (név\gépnév formában).
For Each computer In oSession.sessions
WScript.Echo computer.name
next

Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2002 évkönyv 529. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |