So lassen Sie ein Programm zur Laufzeit unter Windows automatisch schließen

So lassen Sie ein Programm zur Laufzeit unter Windows automatisch schließen

Ich brauche ein Programm, das automatisch geschlossen wird, wenn es unter Windows 10 ausgeführt wird (d. h. ausgeführt wird, egal ob es von mir oder Windows selbst ausgelöst wird). Das Programm kann nicht deinstalliert oder auf andere Weise deaktiviert werden. Könnte dies über ein Batch-Skript mit CMD, Powershell oder dem Taskplaner erreicht werden? Bitte erklären Sie es so ausführlich wie möglich, da ich keine Fachkenntnisse zu diesen Technologien habe (obwohl ich technisch versiert bin, können Sie ruhig den „Jargon“ verwenden – geben Sie einfach die Schritte zur Verwendung der Technologien an). Ich kann zusätzlichen Kontext zu dem genauen Programm angeben, das geschlossen werden muss, aber ich denke nicht, dass dies unbedingt erforderlich ist, und dies könnte definitiv in vielen Kontexten angewendet werden (d. h. dasselbe Skript bei Bedarf mit „insertexe.exe“ anwenden). Grundsätzlich möchte ich dieses Programm nicht öffnen können, ohne es deinstallieren oder auf andere Weise deaktivieren zu können/müssen.

Antwort1

Versuchen Sie einfach, Ihr Skript als Dienst einzurichten

, und legen Sie die Gruppen-/lokale Richtlinie Ihres Dienstes so fest, dass er nach dem Stoppen neu gestartet wird. So wie die SO-Ansätze hier:

Wie kann ich einen Windows-Dienst automatisch neu starten, wenn er abstürzt?

SC failure w3svc reset= 432000  actions= restart/30000/restart/60000/run/60000
SC failure w3svc command= "MyBatchFile.cmd"

Noch einmal, wie [Frank Thomas] sagt: Wenn Sie einen lokalen Administrator stoppen müssen, müssen Sie Code auf Systemebene schreiben, nicht Skriptcode, um so vollständig wie möglich zu sein. Administratoren sind Administratoren und können auf ihrem System tun, was sie wollen.

Antwort2

Schauen Sie sich das Batch-Skript unten an. Sie können den Code start %PROGRAM%so ändern, dass taskkill /im %PROGRAM%Ihr Programm beim Start beendet wird. https://github.com/lu-ko/utils-windows/blob/master/watchdog/watchdog.bat Sie können dieses Bat-Skript auch zum Start hinzufügen https://www.windowscentral.com/how-create-and-run-batch-file-windows-10

Dieses Batchskript wird beispielsweise endlos wiederholt, um notepad.exe zu überprüfen und zu beenden, wenn es ausgeführt wird. Sie können die vierte Codezeile durch Ihre application.exe ersetzen.

@echo off
set TIMEOUT_RUNNING=20
set TIMEOUT_STOPPED=5
set "PROCESS_NAME=notepad.exe"
goto loop


:loop
tasklist /FI "IMAGENAME eq %PROCESS_NAME%" /NH | find /I /N "%PROCESS_NAME%" >NUL

if "%ERRORLEVEL%"=="0" (

 echo [%DATE% %TIME%] Process %PROCESS_NAME% is running - Kill
 taskkill /im "%PROCESS_NAME%"
 timeout %TIMEOUT_RUNNING%

) else (

 echo [%DATE% %TIME%] Process %PROCESS_NAME% is not running
 timeout %TIMEOUT_STOPPED%
)
goto loop

ich hoffe es hilft

verwandte Informationen