Durch cmd direkt in anderes Konto einloggen?

2 Antworten

klar kannst Du vor dem Ausloggen jedem der hinschaut das Passwort verraten

@echo off
MSG "%username%" /w "Melde dich von diesem Konto ab und logge dich mit Passwort xy in Benutzer xy ein"
tsdiscon

(tsdiscon gibts nicht in der Windows Home-Edition)

...das ist sicher nicht nicht was Dir vorschwebt.

So wie Du Dir das vorstellst geht das nicht.

Du kannst nicht ohne Sicherheits"Sperren" zu überwinden in ein anderes Profil wechseln.

Der Logonscreen ist die primitivste...

Mit dem ausloggen per shutdown /l beendest Du alle laufenden Prozesse des aktuellen Nutzers, also auch die cmd-Task, welche Dein Script ausführt. (Du sägst sozusagen den Ast ab, auf dem Du sitzt) Ende der Story , da läuft nichts mehr, was die Kontrolle über den Fortgang haben könnte...

Mit dem Befehl tsdiscon beendest Du zwar nicht die Tasks des aktuellen Nutzers, allerdings verlierst Du mit dem Wechsel in den Logonscreen dennoch die Kontrolle seitens des Nutzers, da der Logonscreen mit Systemrechten läuft, so das nicht mal ein Script mit Adminrechten darauf zugreifen kann.

Fazit, auf Oberflächenebene kannst Du per Programm lediglich ein Nutzerprofil beenden/verlassen und must Dich manuell in ein anderes Profil einloggen. Ein Hauch von Sicherheit (wegen dieser "Lücke" gibt's auch keine Befehle die den Fortgang steuern könnten)

Soviel zur Oberflächen-/Desktop-spielerei

Dessen ungeachtet kann man sehr wohl einzelne Programme oder Scripte als Administrator/Nutzer mit Adminrechten starten...

  • Rechtsklick ...ausführen als Administrator
  • mit dem Befehl Runas (ist Müll, darum keine weitern Worte)
  • man baut in das Script eine kleine Routine ein , welche automatisch beim UAC Adminrechte anfordert (welch Du jedoch trotzdem manuell bestätigen musst)

AdminDemo.cmd

@echo off
net session >nul 2>&1 && goto :adminTasks
powershell -Command "&{ Start-Process \"%~f0\"  -Verb RunAs}"
exit /b

:adminTasks
 rem Hier kommt alles rein, was  mit erhöhten Rechten ausgeführt wird!
echo Ich habe Adminrechte
pause

Du musst Dich als Programmierer (egal in welcher Sprache) vom Oberflächengeklicke lösen. Du arbeitest nicht mehr mit der bunten Oberfläche, sondern mit den "finsteren" Ebenen darunter... und denen ist es völlig egal was der Nutzer sieht.

Übrigens gibt es keinen (normalen) Weg vollautomatisch Adminrechte zu erlangen . (Unter "unsicheren" Bedingungen ist es Möglich per PSExec Prozesse als andere Nutzer (ohne den Weg über die UAC-Frage) auszuführen. Das ist allerdings problematisch, da das Passwort im Klartext in der Batch steht. Wenn da evtl ein schädliches Programm etwas aufpasst, weiß alle Welt, wie man bei Dir Adminrechte erlangt.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren