Ausführen eines Skripts mit einer Exe beim Herunterfahren des Computers

1

Dieselbe Frage habe ich beim Stapelüberlauf aus Versehen gestellt.

Ich habe einen Computer, der sich nicht einschalten lässt, wenn er im erweiterten Modus ist und an ein Fernsehgerät angeschlossen ist. Nur schwarzer Bildschirm und keine Lebenszeichen.

Ich möchte ein Skript haben, das die Anzeige vor dem Herunterfahren auf intern umschaltet. Ich habe es mit einem Skript versucht, das das Signal C: \ Windows \ System32 \ DisplaySwitch.exe / internal und shutdown hat. Dies funktioniert nicht, da die Person, die den Computer bedient, nicht wirklich auf das Skript klicken kann.

Was ich tun wollte, ist es als Skript zum Herunterfahren der Maschine zu setzen. Ich habe Folgendes ausprobiert: Skript mit C: \ Windows \ System32 \ DisplaySwitch.exe / internal und parameter / internal und füge nur ein Skript mit dem Namen C: \ Windows \ System32 \ DisplaySwitch.exe und parameter / CC: \ Windows \ System32 \ hinzu. GroupPolicy \ Machine \ Scripts \ Shutdown \ internal.bat, aber immer noch kein Glück.

Dies sollte richtig funktionieren? Dies funktioniert nur, wenn die Benutzersitzung beendet wird, also nur, wenn dies vom Benutzer und nicht vom Computer konfiguriert wurde.

Der Computer läuft unter Windows 10.

Vielen Dank!

João Santos
quelle
Hallo @ModeratorImpersonator, das hatte ich schon, habe mich nur nicht gut ausgedrückt. Hier ist, was ich habe und derzeit nicht funktioniert: http://imgur.com/a/0mO4K Ich habe nicht versucht, es in einem neuen Ordner auf C zu platzieren. Die Sache ist, dies funktioniert gut, wenn ich es stattdessen auf Benutzer anwenden der Maschine .. aber mit Benutzer kann ich nicht den Abschaltteil abdecken.
João Santos
@ModeratorImpersonator no luck :(. Wenn ich das Skript starte, öffnet es tatsächlich dieses kleine Fenster, als ob Sie WINDOWS + P getan hätten . Kann es das sein? Es öffnet dieses Panel, wechselt zu intern und schließt sich. Ich sehe in der Ereignisanzeige eine Warnung Ich habe der bat-Datei eine Pause hinzugefügt , aber beim Herunterfahren wird keine Eingabeaufforderung angezeigt. Sucht nach einer Möglichkeit, die Anzeige zu ändern, ohne DIsplaySwitch.exe zu verwenden.
João Santos
@ModeratorImpersonator Wenn ich also DisplaySwitch eingebe und danach UP , UP und ENTER drücke , erhalte ich das gewünschte Ergebnis, also den internen Bildschirm. Wenn du das für mich tun könntest, wäre es großartig. Das gleiche muss ich auch tun, indem ich zwei Pfeile nach unten drücke, aber ich denke, ich kann kopieren, was Sie getan haben, und diese kleine Änderung vornehmen. Danke für all die Hilfe!
João Santos

Antworten:

1

Mit einem Batch-Skript können Sie sendkeys ausführen, indem Sie ein dynamisches VBS-Skript erstellen und dann bei Bedarf von cscript ausführen lassen. Die Zeile WshShell.SendKeys "{UP}"im folgenden Beispiel-Batch-Skript drückt auf den Aufwärtspfeil, ersetzt diesen WshShell.SendKeys {"DOWN}"jedoch durch Drücken des Abwärtspfeils.

Batch-Skript

@ECHO ON

DisplaySwitch

:VBSDynamicBuild
SET TempVBSFile=%temp%\~tmpSendKeysTemp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%"
ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{UP}"                             >>"%TempVBSFile%"
ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{UP}"                             >>"%TempVBSFile%"
ECHO Wscript.Sleep 900                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{ENTER}"                          >>"%TempVBSFile%"

CSCRIPT //nologo "%TempVBSFile%"

EXIT /B

Weitere Ressourcen

Pimp Juice IT
quelle
Du machst die ganze Arbeit und ich kann die einfache Sache nicht machen. Damit das Skript ausgeführt wird, habe ich gerade die Taste "{ESCAPE}" hinzugefügt, damit das Fenster geschlossen wird. Aber wenn ich es als .bat-Datei lege, läuft es beim Herunterfahren immer noch nicht. Der Eintrag wird auf regedit erstellt und alles funktioniert aber immer noch nicht. Der Batch befindet sich auf C: \, da es sich um Berechtigungen handeln könnte, aber immer noch nichts. Ich werde testen, ob es tatsächlich zu laufen beginnt. In diesem Fall wird die .vbs-Datei auf temporärer Basis erstellt.
João Santos
Ok, das wird merkwürdig. Ich habe es auch mit dem Task-Zeitplan versucht, als das Ereignis 1074 ausgelöst wurde und es besagt, dass die Aktion initiiert und beendet wurde. Ich verstehe nicht wirklich, warum es nicht mehr funktioniert. Hier sind die Bilder, sie sind auf Portugiesisch, aber es zeigt im Grunde genommen den Erfolg und den Fehler des Aufgabenplans in der Ereignisanzeige, da ich den Stapel beim Herunterfahren noch hatte. http://imgur.com/a/xubZN
João Santos
Ich mache das auf einem Computer, der nicht in der Domäne ist :) Ich werde das alles in ein paar Minuten versuchen. Ich habe alles maschinell erledigt, weil das Skript, das ich am Anfang hatte, beim Abmelden nicht funktioniert hat.
João Santos
Ok, überhaupt kein Glück. Ich werde versuchen, auf dem Zielcomputer und sehen, ob es gut geht, vielleicht kann es funktionieren .. wer weiß. Beim Abmelden oder Herunterfahren funktioniert es nicht, beim Anmelden jedoch. Ich halte dich auf dem Laufenden. Wenn es nicht funktioniert, versuche ich einfach eine Verknüpfung mit einem Ausschaltknopf zum Skript zu haben. Vielleicht mag die Person, die es bedient, die Idee, nur einen Doppelklick auszuführen, um es auszuschalten. Vielen Dank!
João Santos
1
@ JoãoSantos versuchen , es in den Shutdown gpo hinzuzufügen , oder versuchen Befehl shutdown in das Skript so hinzufügen , wenn Sie das Skript es Herunterfahren des Computers wird der Doppelklick und das Skript oder verwenden Sie es als Task - Scheduler mit der Shutdown - Option innerhalb des Skript ausführen
Elie