Windows-Anmeldenamen auslesen

  • Was ist das BgInfo für ein Programm?
    Welchen Webserver und welche Browser werden eingesetzt?

    Mit dem IE könnte man es ohne ActiveX mit VBScript oder JScript (nicht JavaScript!) auch auslesen.

    Möglicherweise ist dein Ansatz schon falsch.
    Was ist genau dein Ziel?
    Soweit ich gelesen habe hast du ein PHP-Script wo nur authentifizierte User zugriff haben sollen?
    Und als Sicherheitszusatz willst du überprüfen ob der eingegebene Benutzername mit dem Windows-Anmeldename übereinstimmt?

    Soweit ich weiß hat PHP5 (oder auch früher) auch schon eine WMI-Unterstützung.
    Diese Methode wäre serverseitig also sicher im Gegensatz zu den anderen clientseitigen Methoden.

    Und wie schon erwähnt, PHP in einer Windows-Umgebung ist die falsche Programmiersprache.

  • Hi Cyberlord,
    wenn Du eine Lösung mit VBScript oder JScript weisst, wäre ich dankbar für einen Beispiel-Code.
    PHP und WMI hab' ich noch keine Info gefunden, wäre also auch da für Tips dankbar.
    BgInfo findest Du bei Sysinternals, eigentlich malt es Systeminfo's auf den Desktop, aber die kann es eben auch per Kommandozeile in eine DB schreiben. Also könnte man damit auch die Info's auf den Server kriegen, wenn die PHP-Seite den Kommandozeilen-Befehl auf dem Client ausführen könnte. Wenn Du da den Trick kennst komme ich auch weiter.
    MfG
    6_freddy

  • WMI Homepage:
    http://msdn.microsoft.com/library/defaul…_start_page.asp
    für dich interessant:
    http://msdn.microsoft.com/library/defaul…tem_classes.asp

    Infos von der PHP-HP:
    http://at.php.net/com

    kleines Beispiel zum Verbinden (hier wird alles über die CPU ausgelesen):

    zu WMI mit PHP verbinden (XML):
    http://www.aspfree.com/c/a/Windows-Sc…to-WMI-with-PHP


    Viel Spaß beim Basteln!

  • Zitat von 6_freddy

    Hi Cyberlord,
    wenn Du eine Lösung mit VBScript oder JScript weisst, wäre ich dankbar für einen Beispiel-Code.
    PHP und WMI hab' ich noch keine Info gefunden, wäre also auch da für Tips dankbar.
    BgInfo findest Du bei Sysinternals, eigentlich malt es Systeminfo's auf den Desktop, aber die kann es eben auch per Kommandozeile in eine DB schreiben. Also könnte man damit auch die Info's auf den Server kriegen, wenn die PHP-Seite den Kommandozeilen-Befehl auf dem Client ausführen könnte. Wenn Du da den Trick kennst komme ich auch weiter.
    MfG
    6_freddy

    Moin!

    Leg doch die BgInfo in den Autostart der jeweiligen Rechner, dann hast du die Daten immer zur Verfügung und brauchst die Anwendung nicht über das Web starten.

    G.a.d.M.

    Ronald

  • Hi, Cyberlord,
    da hab' ich einen Code-Schnipsel gefunden, der macht wohl, was ich mir wünsche.

    Code
    strComputer = "RemoteComputer"
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" _ 
        & strComputer & "\root\cimv2") 
    Set colComputer = objWMIService.ExecQuery _
        ("Select * from Win32_ComputerSystem")
     
    For Each objComputer in colComputer
        Wscript.Echo objComputer.UserName
    Next


    Aber ich hab' keinen Plan, wie ich den per PHP-Script an den Client senden kann. :oops:
    Also: Wie krieg' ich den "RemoteComputer" als Variable rein? Kann man das dann in <script>-Tags einbinden? Wie kommt das "Wscript.Echo" auf den Server?
    Weisst Du da weiter?
    MfG
    6_freddy :?

  • Zitat

    Aber ich hab' keinen Plan, wie ich den per PHP-Script an den Client senden kann.


    Mit PHP? echo?

    Zitat

    Wie krieg' ich den "RemoteComputer" als Variable rein?


    Der RemoteComputer ist einfach die Remote-IP-Adresse, die auf das Script zugreift.

    <?
    phpinfo()
    ?>

    erzählt dir dazu mehr.

    Zitat

    Wie kommt das "Wscript.Echo" auf den Server?


    Gar nicht. Mein Script-Beispiel ist schon serverseitig.

  • Zitat von 6_freddy

    ich will doch nur den Windows-Username von dem Client wissen, der meine Script aufruft. :?
    Man kann doch jeden Scheiss auslesen, da kann doch die Kunst beim Username nicht versagen...

    Man kann eben nicht "jeden Scheiss" auslesen. Erstrecht nicht per Script.

    Hättest auf die allererste Antwort hören sollen:
    Vergiss es!

    Im übrigen sind diese ganzen C++ Mutmaßungen da oben purer Unfug. Man kann den Code schlichtweg nicht clientseitig ausführen lassen. Allenfalls mit einem Exploit (also Angriff) auf eine Sicherheitslücke. Aber dazu muss man schon etwas geschickter sein.

    Gruß, SloMo

  • Zitat von SloMo

    Man kann eben nicht "jeden Scheiss" auslesen. Erstrecht nicht per Script.


    Schon mal etwas von WMI gehört?
    Funktioniert clientseitig und serverseitig. Mit VBScrit und JScript. Unterstützt ASP und PHP. Natürlich nur in einer Windows-Umgebung, also für diese Problemstellung geeignet.

    Zitat von SloMo

    Allenfalls mit einem Exploit (also Angriff) auf eine Sicherheitslücke. Aber dazu muss man schon etwas geschickter sein.


    Hey er will nicht hacken sondern eine Funktion schreiben!
    Und wie lange sollte das dann gut gehen? Bis zum nächsten Sicherheitsupdate?

    Nachtrag:
    Mit WMI ist zB möglich die BIOS-Einstellungen deines PC's auszulesen oder den Hersteller und Timings von deinem RAM.

  • Zitat von Cyberlord


    Schon mal etwas von WMI gehört?

    Ja. Und ich weiß, dass man mit einem clientseitigen Script bei intakten Sicherheitseinstellungen nicht auf solche Daten zurückgreifen kann. Da hilft auch kein WMI.

    Und dass es serverseitig keinen Sinn macht, weißt du ja wahrscheinlich selbst.

    Gruß, SloMo

  • Hi,

    Ronald hat geschrieben:

    Zitat


    Moin!

    Leg doch die BgInfo in den Autostart der jeweiligen Rechner, dann hast du die Daten immer zur Verfügung und brauchst die Anwendung nicht über das Web starten.

    G.a.d.M.

    Ronald


    Genau so, bzw. über einen Logon-Script werd' ich das wohl lösen. Und auf den Server, auf dem die PHP-Scripte laufen, haben dann nur Domänenbenutzer Zugriff und dann läuft's. Reizvoller wäre eine Lösung, die den Username zur Laufzeit überträgt, schon gewesen aber robuster ist die Variante mit BgInfo. Ausserdem war mir die ganze ActiveX-Frickelei irgendwie unsympathisch.
    Danke nochmal an alle, die mit Ihren Beiträgen meine grauen Zellen auf Trab gebracht haben.
    MfG
    6_freddy :)