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

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
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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

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

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

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
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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

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

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

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
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Schau dir mal die Links hier an!

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

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