Fügen Sie unter Windows programmgesteuert Anmelde- / Abmeldeskript hinzu

957
Aran-Fey

Gibt es eine Möglichkeit, ein Anmelde- oder Abmeldeskript unter Windows programmgesteuert hinzuzufügen? Ich möchte keine grafischen Programme verwenden, alles soll geschehen, ohne dass der Benutzer etwas bemerkt.

Außerdem möchte ich die Skripts nur ausführen, wenn sich ein bestimmter Benutzer an- / abmeldet. Es sollte nicht für jeden Benutzer im System ausgelöst werden.

Versuchte Lösungen:

  1. Hinzufügen des Befehls zur Registrierung gemäß dieser Antwort . Das Hinzufügen des Befehls scheint HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts\Logoff\0\0nicht genug zu sein. Ich habe festgestellt, dass ich auch den gleichen Befehl hinzufügen HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\S-1-5-21-57470242-2825662697-3518406308-1003\Scripts\Logoff\0\0und möglicherweise auch ändern muss %WINDIR%\System32\GroupPolicy\User\Scripts\scripts.ini, andernfalls wird der Befehl einfach nicht ausgeführt.

    Ich habe aufgehört, diese Lösung zu verfolgen, weil ich nicht weiß, was der Registrierungsschlüssel S-1-5-21-57470242-2825662697-3518406308-1003ist. Ist das eine zufällige Ziffernfolge? Ist es immer derselbe Text? Funktioniert es, wenn ich dies auf einem anderen PC verwende?

  2. Änderung %WINDIR%\System32\GroupPolicy\User\Scripts\scripts.inigemäß dieser Antwort . Hier passiert etwas sehr Seltsames. Ich kann diese Datei im Explorer sehen. Es existiert. Ich kann es öffnen und kann mit Administratorrechten den Editor verwenden, um es zu ändern. Wenn ich jedoch versuche, von einem Python-Skript aus darauf zuzugreifen, erhalte ich einen FileNotFoundError, auch wenn ihm Administratorrechte erteilt wurden. (Traceback: FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Windows\\System32\\GroupPolicy\\User\\Scripts\\scripts.ini'PS: Ich verwende keine doppelten Backslashes, Python zeigt sie nur so an)

  3. Erstellen einer Startaufgabe mit SCHTASKS. Ich habe das aufgegeben, weil es so aussieht, als ob SCHTASKS nur Anmeldeaufgaben unterstützt, nicht jedoch Abmeldeaufgaben.

1
`schtasks` übernimmt die Abmeldung. Verknüpfen Sie die Task mit der Ereignis-ID 4647 - Vom Benutzer initiierte Abmeldung oder 4634 - Ein Konto wurde abgemeldet DavidPostill vor 8 Jahren 0
@DavidPostill Ich habe eine Aufgabe mit "SCHTASKS / create / tn test / tr" erstellt = 4634] "`, aber aus irgendeinem Grund wird es beim Abmelden nicht ausgeführt. Es läuft erfolgreich, wenn ich `SCHTASKS / run / tn test` mache. Was mache ich falsch? Aran-Fey vor 8 Jahren 0
Keine Ahnung. Funktioniert es mit 4647? Es könnte eine zeitliche Angelegenheit sein - kann nicht ausgeführt werden, weil der Benutzer bereits abgemeldet ist? DavidPostill vor 8 Jahren 0
@DavidPostill Das funktioniert leider auch nicht. Ich habe mir 'schtasks / query / v / tn test / fo list' angesehen und alles sieht in Ordnung aus, aber ich habe bemerkt, dass sich die 'letzte Laufzeit' nicht ändert, wenn ich mich abmelden. Ich denke, mit dem xpath `* [System / EventID = 4634]` muss etwas nicht stimmen. Aran-Fey vor 8 Jahren 0
Versuchen Sie, die Aufgabe mit der GUI zu erstellen ... DavidPostill vor 8 Jahren 0
Relevant: [Windows 7 Taskplaner-Abmeldung] (https://stackoverflow.com/a/34045164) und [Vorgehensweise beim Planen einer Task zum Herunterfahren von Fenstern] (https://stackoverflow.com/a/27327480) DavidPostill vor 8 Jahren 0
@DavidPostill Erstellt eine Aufgabe mit der GUI mit zwei Auslösern: 1) bei Ereignis 4634 2) beim Trennen der Verbindung mit der Benutzersitzung wird immer noch nicht ausgeführt ... Auch das Ändern von 'HKEY_LOCAL_MACHINE` hilft mir nicht, weil ich das möchte Führen Sie die Skripts nur dann aus, wenn sich ein bestimmter Benutzer an- oder abmeldet, aber "HKEY_LOCAL_MACHINE" würde für alle Benutzer auslösen, oder? Sorry, wenn das aus meiner Frage nicht klar wurde, habe ich es jetzt bearbeitet. Aran-Fey vor 8 Jahren 0

0 Antworten auf die Frage