Abmeldeskript für eigenständige Workstation hinzufügen?

625
jww

Ich habe 6 Versionen von Windows in VMs zum Testen von Software. Die Windows-VMs sind eigenständig und nicht Teil der Domäne. Sie umfassen Windows XP bis Windows 10. Die getestete Software erzeugt während des Tests etwa 1,75 GB bis 2 GB Ausgabeartefakte (Objektdateien, Programmdatenbankdateien, Bibliotheken und ausführbare Dateien).

Ich möchte ein Abmeldeskript ausführen, das die Artefakte bereinigt. Das Skript ist recht einfach, da nur drei Ordner in einem bestimmten Verzeichnis gelöscht werden müssen, wenn es existiert. Ich habe bereits das Skript.

Ich habe gefunden, dass KBs Assign Computer Shutdown Scripts und MSDN-Diskussionen wie " Logoff Scripts synchron ausführen - Standalone Workstation" ausführen, aber sie gehen davon aus, dass der Windows-Computer eine Mitglied-Workstation und Teil einer Domäne ist.

Wie füge ich einer Standalone / Nicht-Mitglieder-Workstation ein Abmeldeskript hinzu, um die Build-Artefakte während der Abmeldung zu bereinigen?

0
Ich bin verwirrt. Warum können Sie die in https://technet.microsoft.com/en-us/library/cc753404.aspx aufgeführten Methoden nicht erneut in der Gruppenrichtlinienkonfiguration verwenden, indem Sie diese Richtlinie festlegen und auf ein Skript verweisen LOGOFF oder SHUTDOWN auf den meisten Ihrer Maschinen? Diese Richtlinien können lokal mit `gpedit.msc` festgelegt werden und nicht nur über eine Domänenumgebung. Sie haben einen Link dazu über einen der anderen Links in Ihrer Frage? Pimp Juice IT vor 7 Jahren 0
Das fühlt sich an, als würde man Snapshots und / oder ein Nur-Lese-Laufwerk dafür verwenden. Aibobot vor 7 Jahren 0
@Homey_D_Clown_IT - Ich denke, Sie haben denselben Artikel zitiert, den ich zitiert habe. Wie ich in der Frage festgestellt habe, handelt es sich hierbei um eine eigenständige Workstation. und kein Mitglied einer Domain. Ich habe keinen Domänencontroller oder einen Netlogon-Ordner. Folgen Sie den Links und lesen Sie die Anweisungen: * "Geben Sie unter Skriptname den Pfad zum Skript ein, oder klicken Sie auf Durchsuchen, um die Skriptdatei im freigegebenen Ordner Netlogon auf dem Domänencontroller zu suchen." * jww vor 7 Jahren 0
@jww Haben Sie versucht, einen lokalen Pfad zuzuweisen, um zu sehen, was passiert? Seth vor 7 Jahren 0

3 Antworten auf die Frage

1
Seth

Abhängig davon, was auf dem System tatsächlich passiert, nachdem Sie den Standard- Windows-Taskplaner getestet haben . Es ist ein Ereignis, wenn sich ein Benutzer anmeldet off auf. Wenn Sie einen bestimmten Benutzer haben, können Sie ihn sogar zuordnen und durch entsprechendes Design Ihres Skripts können Sie die Abmeldung möglicherweise erkennen. Alternativ können Sie ein benutzerdefiniertes Ereignis in das Ereignisprotokoll schreiben und darauf achten. Ich bin mir nicht sicher, ob On disconnect from user sessioneine lokale Abmeldung ausgelöst würde.

Andernfalls wäre der Vorschlag von Big Chris / der Kommentar zu Ihrer Frage, dass Sie möglicherweise die lokalen Gruppenrichtlinien verwenden können, anwendbar. In Windows XP treten möglicherweise Probleme auf, da XP sehr unterschiedlich ist. Dies gilt jedoch wahrscheinlich für jede Lösung.

Der richtige / optimale Weg wäre wahrscheinlich, das Skript, das die Aufräumarbeiten als letzte Testphase durchführt, zur Verfügung zu haben. Nach all dem wäre sichergestellt, dass die Tests abgeschlossen sind, und je nachdem, wie Sie die Tests tatsächlich durchführen (das automatische Build-System, mit dem die Tests ausgeführt werden), können Sie es vielleicht sogar als zusätzlichen Schritt einrichten.

1
dExIT

Getestet unter Win 7 HP 32,64 - Win 7 Ent 32,64

Wenn Sie Tests ausführen, bedeutet dies, dass Sie sich beim Start der nächsten Testphase erneut anmelden. Weisen Sie einfach über TASK SCHEDULER einen LOGON-Trigger zu, um ein Skript während der Anmeldung auszuführen, und weisen Sie ihn als SYSTEM-Benutzer zu, so dass er im Hintergrund ausgeführt wird. Speichern Sie einfach die untenstehende Beispielaufgabe als XML-Datei und bearbeiten Sie die Quelle:

<?xml version="1.0" encoding="UTF-16"?> <Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <Date>2016-08-17T08:16:28.8123508</Date> ! <Author>DOMAIN\USER</Author> ! <Description>Your description</Description> </RegistrationInfo> <Triggers> <LogonTrigger> <Enabled>true</Enabled> </LogonTrigger> </Triggers> <Principals> <Principal id="Author"> ! <UserId>S-1-5-18</UserId> -> This is SYSTEM user ID <RunLevel>HighestAvailable</RunLevel> </Principal> </Principals> <Settings> <MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy> <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries> <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> <AllowHardTerminate>true</AllowHardTerminate> <StartWhenAvailable>false</StartWhenAvailable> <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> <IdleSettings> <StopOnIdleEnd>true</StopOnIdleEnd> <RestartOnIdle>false</RestartOnIdle> </IdleSettings> <AllowStartOnDemand>true</AllowStartOnDemand> <Enabled>true</Enabled> <Hidden>false</Hidden> <RunOnlyIfIdle>false</RunOnlyIfIdle> <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession> <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine> <WakeToRun>false</WakeToRun> <ExecutionTimeLimit>P3D</ExecutionTimeLimit> <Priority>7</Priority> </Settings> <Actions Context="Author"> <Exec> ! <Command>C:\cleanup.bat</Command> This is where your script resides </Exec> </Actions> </Task> 
Danke @dExit. Ich brauche es für die Abmeldung, nicht für die Anmeldung. Mein Host hat fast keinen Speicherplatz mehr, und die 5 GB oder 10 GB, die oft übersehen werden, sind von Belang. Ich habe ein paar Fragen zu Super User, die sich auf die geringen Speicherplatzprobleme bei VMware beziehen. jww vor 7 Jahren 0
Ich verstehe, denke nur darüber nach, du zwingst dich, nur EIN WEG zu verwenden. dExIT vor 7 Jahren 0
0
Kinnectus

Verwenden Sie die lokale Gruppenrichtlinie, um ein Abmeldeskript zuzuweisen.

Einige Untersuchungen finden schnell verschiedene Gründe, warum es nicht einfach ist, den Taskplaner zu verwenden, und die empfohlene Methode ist Gruppenrichtlinie.