Autologin an anderem Win XP PC
-
Ich schreibe an einer Software die es mir ermöglichen soll auf
5 verschiedenen PC, die alle mit Win XP ausgestatt sind,
eine automatische Anmeldung vorzunehmen.Gibt es über WinAPI eine Möglichkeit den Benutzernamen und
Passwort zum zugreifen auf den PC unter Verwendung eines
bekannten Benutzerkontos mit entsprechendem Passwort zu
automatisieren ?Ich meine etwas wie "benutzer:passwort@192.155.2.1".
Welche alternativen Möglichkeiten könnte ich ggf. nutzen
um dies zu realisieren ?
-
Nein, da du an das Passwort des Benutzers nicht drankommst, acuh als Administrator nicht. Wäre ja auche eine Sicherheitslücke ohne gleichen. Btw. wirst du mit so was unter Windows XP Home sowieso deine Probleme haben, da es viele Dinge remote nicht unterstützt.
-
Entweder verstehe ich nicht genau, was exakt du vorhast oder ihr redet aneinander vorbei.

-
Hmm, also wenn ich im Internet Explorer 192.1695.22.1 eingebe
erhalte ich ein Anmeldefenster für den LAN-PC. Das ist auch richtig so.
Aber programmtechnisch möchte ich aus einer von mir vordefinierten Liste
den Benutzer und das Passwort an dieses Fenster übergeben.
Ideal wäre es wenn das Fenster erst gar nicht auftaucht, also aufgrund
der übergebenen Daten "Admin:pass" gleich übersprungen wird und ich so
unter Verwendung der Anmeldedaten auch auf meinen LAN-PC komme.Wenn es nicht geht, ok. Dann versuche ich halt das Fenster zu bekommen
welches die Angaben erfordert und setze darin mit FindWindow die Daten.
Wäre aber nicht die Lösung die ich mir wünschen würde
-
Geht es um einen Webinhalt (wegen Internet Explorer) oder um die Dateifreigaben des entsprechenden Rechners? Für den zweiten Fall hat Windows ja einen Cache und man müsste dafür sorgen, dass die Logindaten bereits im Cache vorhanden sind. Möglicherweise im Sinne von LogonUser, aber das ist ja nur lokal verwendbar.
-
Ich öffne die Freigaben auf dem anderen PC über ShellExecute über
den Explorer(! sry mein Fehler).Wie müsste ich denn diese Logininformationen wo und in welcher Art hinterlegen?
Wie würde mich LogonUser weiterbringen ? Verstehe ich das richtig, dass ich
z.B. einen Benutzer "Test" mit dem Passwort "hugo" über LogonUser anmelden
kann, wenn er auf dem Zielsystem so angelegt wurde ?Ich führe praktisch die Operation auf dem Ziel-PC tempörär, für den
tatsächlich angemeldeten Nutzer nicht sichtbar, aus ?HANDLE hToken; DWORD dwSize; TCHAR szName[256]; dwSize = sizeof(szName) / sizeof(szName[0]); GetUserName(szName, &dwSize); MessageBox(szName, MB_OK); //tatsächlicher Nutzer if(LogonUser(TEXT("Test"), NULL, TEXT("Hugo"), LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hToken)) { ImpersonateLoggedOnUser(hToken); dwSize = sizeof(szName) / sizeof(szName[0]); GetUserName(szName, &dwSize); RevertToSelf(); CloseHandle(hToken); MessageBox(szName, MB_OK);//momentaner temporärer Nutzer = "Test" //hier kann ich weiter Aktionen als Benutzer "Test" ausführen oder ? }Nun kann ich zwar Aktionen auf dem PC ausführen wie z.B. Dateien freigeben, aber die Freigaben sehe ich
auf meinem entfernten PC immer noch nicht?! Mir ging es ja um die Remote-Anmeldung.Oder steh ich jetzt doch total auf dem Schlauch :p
-
Wenn du manuell die Dateifreigabe aufrufst und deine Daten eingibst, sind die ja vorerst gecached und du musst sie nicht erneut eingeben. LogonUser cached die Logindaten auch sofern man sich interaktiv anmeldet. Das ist zum Einen aber nicht die gewünschte Art der Anmeldung, weil man ja nur auf die Netzwerkfreigaben zugreifen will und zum Anderen unterstützt LogonUser NICHT das Anmelden auf Remoterechnern. Jetzt ist also die Frage, wie man die Logindaten in den Cache bekommt, so recht eine Ahnung habe ich nicht.

-
Ok, aber vielen Dank.
Kannst du mir noch sagen warum bei mir, wenn ich
mit LogonUser arbeite, nicht im Taskmanager der
soeben angemeldete Benutzer zu dem gestarteten
Prozess angezeigt wird ?Ich dachte nach dem LogonUser wird bis ich
CloseHandle(hToken); aufrufe alles unter
dem Nutzer "Test" ausgeführt und auch so gekennzeichnet ?
-
Zwischen ImpersonateLoggedOnUser und RevertToSelf arbeitetst du im Kontext des anderen Benutzers. Allerdings wird dadurch nur das Token des aktuellen Threads getauscht, die anderen Threads und das Prozesstoken bleiben so wie sie waren.
-
Ah ok !