logInfos über Netzwerk auslesen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
heftic
User
Beiträge: 22
Registriert: Mittwoch 21. September 2005, 13:09
Wohnort: Siegen

Mittwoch 23. November 2005, 11:41

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 :)
mfg

heftic
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 23. November 2005, 16:01

Weißt du, ob das Protokoll (vermutlich RDP) so etwas überhaupt unterstützt?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 23. November 2005, 16:57

Also wenn man per RemoteDesktop auf einen Rechner zugreifen will, der schon "besetzt" ist, wird erstmal nachgefragt... Somit muß es irgendwie möglich sein...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
heftic
User
Beiträge: 22
Registriert: Mittwoch 21. September 2005, 13:09
Wohnort: Siegen

Donnerstag 24. November 2005, 07:46

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.
mfg

heftic
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 24. November 2005, 08:09

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...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Donnerstag 24. November 2005, 09:10

Schau dir mal win23all von Mark hammond an, dort insbesondere win32net.
Eine andere Möglichkeit ist ctypes von Thomas Heller.

mfg, querdenker
heftic
User
Beiträge: 22
Registriert: Mittwoch 21. September 2005, 13:09
Wohnort: Siegen

Freitag 25. November 2005, 09:39

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.
mfg

heftic
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 25. November 2005, 10:15

Schau dir mal die Links hier an!

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
heftic
User
Beiträge: 22
Registriert: Mittwoch 21. September 2005, 13:09
Wohnort: Siegen

Montag 5. Dezember 2005, 13:47

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.
mfg

heftic
Antworten