Seite 1 von 1

logInfos über Netzwerk auslesen

Verfasst: Mittwoch 23. November 2005, 11:41
von heftic
Hallo!

Ich habe ein paar PC's auf die man über RemoteVerbindung zugreifen kann.

Jetzt will ich ein Tool schreiben welches einem anzeigt ob immoment schon jemand auf den einzelnen Remote-PC's angemeldet ist oder ob ein paar noch frei sind.
Das Problem ist das ich nicht genau weis wie ich mit Python eine Verbindung zu diesen Computern aufbauen kann um dann abzufragen welcher User dort gerade angemeldet ist.

ich hoffe ihr könnt mir helfen :)

Verfasst: Mittwoch 23. November 2005, 16:01
von Leonidas
Weißt du, ob das Protokoll (vermutlich RDP) so etwas überhaupt unterstützt?

Verfasst: Mittwoch 23. November 2005, 16:57
von jens
Also wenn man per RemoteDesktop auf einen Rechner zugreifen will, der schon "besetzt" ist, wird erstmal nachgefragt... Somit muß es irgendwie möglich sein...

Verfasst: Donnerstag 24. November 2005, 07:46
von heftic
Kann man nicht einfach die Loginformationen von dem PC auslesen?

vieleicht so:

Code: Alles auswählen

import os

loggedUser = os.environ.get('USERNAME')
print loggedUser

dafür muss ich nur irgendwie zu ihm connecten.
aber wie?
:?:

Edit (Leonidas): Code in Python-Tags gesetzt.

Verfasst: Donnerstag 24. November 2005, 08:09
von jens
Na, das dürfte wohl ehr nur eine Notlösung sein. Ich denke man kann die Information direkt beim RDP Dienst abgreifen!

Besorg dir doch mal den Packetyzer und schau mal nach, was passiert, wenn du dich normal per RemoteDesktop verbinden willst du der Rechner ist eigentlich schon besetzt...

Vielleicht hat sich darüber aber schon jemand anderes Gedanken gemacht und die Information ist irgendwo im Netz zu finden...

Verfasst: Donnerstag 24. November 2005, 09:10
von querdenker
Schau dir mal win23all von Mark hammond an, dort insbesondere win32net.
Eine andere Möglichkeit ist ctypes von Thomas Heller.

mfg, querdenker

Verfasst: Freitag 25. November 2005, 09:39
von heftic
Danke schonmal für die Tipps.

Aber irgendwie bekomme ich das immernoch nicht hin.
Ich kann zwar alle User anzeigen die auf der Warkstation existieren,
aber nicht den der gerade angemeldet ist. :x :cry:

Naja ich werde es mal noch weiter probieren.

Verfasst: Freitag 25. November 2005, 10:15
von jens
Schau dir mal die Links hier an!

Verfasst: Montag 5. Dezember 2005, 13:47
von heftic
Danke für die guten Tipps :D

ich habs jetzt so gemacht:

Code: Alles auswählen

import win32net
import pywintypes
import re

userPattern = re.compile(r"^[A-Za-z]{1}[a-zA-Z0-9]{2,3}")

Workstations = open (r'C:\WSListe.txt','r')
for WSname in Workstations:
    try:
        WSname = WSname.strip()
        liste = win32net.NetWkstaUserEnum(WSname, 0)
        print "Angemeldete Benutzer auf %s:" % WSname
        for e in liste[0]:
            user = e['username']
            if user[-1] != "$":
                g = userPattern.match(user)
                if g != None:
                    print "Benutzername: %s" % g.group()

    except pywintypes.error:
        print "Auf %s ist kein Benutzer angemeldet!"% WSname

Workstations.close()

Mit dem Pattern filtere ich die gewünschten Userkürzel heraus.

Edit (Leonidas): Code in Python-Tags gesetzt.