2008-10-06 18 views
15

Ich möchte eine kleine Anwendung schreiben, die die Workstation entsperrt. Um die Spezifikationen von dem, was ich brauche, sehr einfach zu machen: Lassen Sie eine exe, die läuft und zu einer definierten Zeit (sagen wir Mitternacht) die Workstation freischalten. Natürlich kennt die Anwendung den Benutzer und das Passwort des angemeldeten Kontos.Windows Workstation programmgesteuert entsperren

Ich kenne die LogonUser API und habe versucht, es zu verwenden, aber fehlgeschlagen. Hat jemand eine Lösung, Code-Auszug, der tatsächlich für dieses Problem funktioniert?

Ich ziele auf NT5-Betriebssysteme.


Nun, da die Leute zu fragen begann, was der Grund ist: Ich auf einem Desktop-Sharing-Anwendung arbeite und ich möchte die Funktion der Entriegelung der Workstation hinzuzufügen. Die sehr kleine und einfache App zum Entsperren der Station zu einem definierten Zeitpunkt ist, um das Problem zu trennen und die Integrationsdetails zu vermeiden.

+0

Warum? Sind Sie sicher, dass es keinen besseren Weg gibt, das zu tun, was Sie versuchen? – Coincoin

+1

Das klingt nach einer sehr schlechten Idee. Was ist der Zweck davon? Es gibt wahrscheinlich eine bessere Lösung ... – Will

+1

Ich bin mir ziemlich sicher, dass dies eine schlechte Idee ist und (ich hoffe wirklich) auch unmöglich. – GEOCHET

Antwort

3

Lassen Sie Ihre App als Dienst ausführen, dann benötigen Sie keinen Benutzer/Passwort, da dies mit dem Dienst eingerichtet ist.

9

Nur so haben Sie eine Antwort dafür, anstatt Leute Antworten zu lassen, die besser als Kommentare sein könnten.

Dies ist sicherlich möglich, obwohl viele Leute schon gesagt haben, dass es nicht wirklich weise ist, was passiert, wenn jemand am Computer läuft, wie er freischaltet, wie lange müssen sie herumspielen usw.?

Abgesehen davon, dass Sie vorschlagen, dass Sie einen Dienst haben, um jede Arbeit, die Sie auf Ihrem Computer tun möchten, oder sogar Remote-Verbindung mit dem Computer zu arbeiten, können Sie möglicherweise Benutzer der folgenden Informationen machen. (wie für "code excerts" können Sie es selbst machen)

http://www.paralint.com/projects/aucun/ ist eine GINA-Implementierung, die Ihnen Rechte zur Anmeldung geben kann, selbst wenn sich jemand anderes bereits angemeldet hat. Schauen Sie hinein, es könnte sein, was Sie suchen und ist viel sicherer, als die Workstation zu einer bestimmten Zeit zu entsperren.

Als Alternative können Sie Ihre eigene GINA-Implementierung schreiben, die zu einem bestimmten Zeitpunkt entsperrt wird.

Informationen über GINA

http://msdn.microsoft.com/en-gb/magazine/cc163803.aspx

http://msdn.microsoft.com/en-us/magazine/cc163786.aspx

Nachdem Sie den Desktop Ich bin entsperrt habe ziemlich sicher, dass Sie es wieder sperren wollen fahren.

http://www.codeproject.com/win32/AntonioWinLock.asp

+0

Danke für die Antwort. Bis jetzt am genauesten. –

+0

@finnw: Ich stimme der Sprache zu. Ich habe es redigiert, um es berufsneutral zu machen, hoffe, dass das mit dem OP in Ordnung ist. Sie sollten jedoch Ihre -1 entfernen können. –

+1

Eine weitere Überlegung: GINA gilt als veraltet. Siehe http://msdn.microsoft.com/en-us/magazine/cc163489.aspx –

0

Für meine Situation musste ich in der Lage sein, die Konsolensitzung wiederherzustellen, nachdem ich meine Terminalsitzung getrennt habe (ich bin Verbindung zu einem WinXPe-Kiosk mit Touchscreen, aber ohne Tastatur).

Hier ist eine Befehlszeilenlösung, die ich gefunden habe, um zu arbeiten. Anstatt mein Sitzungsfenster zum Trennen zu schließen, führe ich eine Batchdatei mit der folgenden Zeile aus. Meine Sitzung wird geschlossen und die Konsolensitzung wird entsperrt wiederhergestellt.

  • automatisch Workstation nach Terminal-Sitzung auf WinXP entsperren

    tscon.exe 0 /dest:console 
    
  • für Windows Vista/7 die Konsolensitzung Nummer von 0 auf 1 geändert, so dass Sie

    tscon.exe 1 /dest:console 
    
  • verwenden müssen



Source link: http://arstechnica.com/civis/viewtopic.php?f=15&t=69113