Führen Sie eine Batchdatei vollständig versteckt aus

450670
Moayad Mardini

Ich suche nach einer Möglichkeit, eine Batchdatei (.bat) ohne für den Benutzer sichtbares Objekt auszuführen (kein Fenster, kein Taskleistenname, .etc ..).

Ich möchte kein Programm dafür verwenden, ich suche etwas Reinigeres. Ich habe eine Lösung gefunden, die VBScript verwendet, aber VBS mag ich auch nicht wirklich.

117
Haha! Definitiv nicht. Ich entwickle einen Windows-Dienst, der ab und zu eine Batchdatei ausführt. Moayad Mardini vor 14 Jahren 0
Windows-Dienste werden nicht als Batchdateien ausgeführt. Sie laufen als Dienste. Sie müssen die Frage klären - wie geschrieben und mit Kommentaren macht es für mich keinen Sinn. CarlF vor 14 Jahren 4
Ich habe einen Windows-Dienst, der Batchdateien ausführt. Nicht dass der Dienst eine Batchdatei ist. Moayad Mardini vor 14 Jahren 1
In welcher Sprache schreiben Sie Ihren Dienst? Hugh Allen vor 14 Jahren 1
da ist auch hstart. barlop vor 10 Jahren 0
Wenn Sie bereits einen Dienst entwickeln, können Sie mit NSSM aus Ihrer kompilierten Datei einen Dienst erstellen. KnightOfNi vor 9 Jahren 0
Einfach zur Liste der Programme hinzufügen - [Hidden Start] (http://www.ntwind.com/software/hstart.html). Karan vor 8 Jahren 0
Ich denke, dein Link ist unterbrochen. Artemis Fowl vor 5 Jahren 0
"Eine Lösung" hat einen Link verrottet, [Archiv hier] (https://web.archive.org/web/20121028054849/http://www.computing.net/answers/dos/run-batch-file-invisiblestealth/14270 .html) Shaun Dreclin vor 5 Jahren 0

23 Antworten auf die Frage

99
harrymc

Lösung 1:

Speichern Sie diese eine Textzeile als Datei invisible.vbs:

CreateObject ("Wscript.Shell"). Führen Sie "" "" & WScript.Arguments (0) & "" "", 0, False aus

Um ein Programm oder eine Batchdatei unsichtbar auszuführen, verwenden Sie es wie folgt:

wscript.exe "C: \ Wherever \ invisible.vbs" "C: \ Ein anderer Ort \ MyBatchFile.bat"

Um auch eine Liste von Argumenten übergeben oder weiterleiten zu können, verwenden Sie nur zwei Anführungszeichen

CreateObject ("Wscript.Shell"). Ausführen "" und WScript.Arguments (0) & "", 0, False

Beispiel: Invisible.vbs "Kill.vbs ME.exe"

Lösung 2:

Verwenden Sie ein Befehlszeilentool, um einen Prozess im Hintergrund zu starten: Quiet, hidecon oder hideexec .

Warum 4 doppelte Anführungszeichen, könnten Sie das bitte erklären? Starx vor 12 Jahren 1
Was wäre, wenn wir ein verstecktes Programm starten müssten? Starx vor 12 Jahren 0
@Starx VB syntax. `&` means concatenate strings. Strings are enclosed in double quotes (`"`). Consecutive double quotes (`""`) inside string delimiters means a literal double quote (`"`). So, four double quotes (`""""`) would be a string literal of one character, a double quote (`"`). Put it together, and `"""" & WScript.Arguments(0) & """"` would become `""`, where `` is the first command line argument passed to the script. Bob vor 11 Jahren 3
Coole und einfache Lösung. Überprüft, es funktioniert. Danke nightcoder vor 11 Jahren 0
Nach stundenlangem Suchen und Ausprobieren erledigt dieser VBS den letzten Trick. Einfachste Lösung für das unbeaufsichtigte Starten der Batchdatei von einer geplanten Aufgabe aus, vielen Dank. Mr. Bungle vor 10 Jahren 0
`CreateObject (" Wscript.Shell "). Run" "" "& WScript.Arguments (0) &" "" ", 0, False" ist es möglich, diesen Code in `JAVA` oder atleat in der Windows-Bat-Datei zu erhalten Ich sollte nicht VB verwenden .. bitte helfen .. Babel vor 9 Jahren 0
Wie kann man es so ändern, dass alle Argumente übergeben werden? Es wäre bequemer, die Argumente zu übergeben, ohne sie zu zitieren. Ctrl-C vor 8 Jahren 3
Müssen Sie nicht immer noch eine Batch-Datei erstellen, um die "wscript.exe" C: \ Wherever \ invisible.vbs "..." in ein Verzeichnis zu setzen? endolith vor 6 Jahren 2
"hideexec" scheint einige Schwierigkeiten zu haben, erhöhte Befehle auszuführen. Vlastimil Ovčáčík vor 6 Jahren 0
Der Aufruf ohne Parameter funktioniert, der unbeschriebene Aufruf mit Parametern funktioniert, aber ich kann keinen Weg finden, ein Skript zu verwenden, das selbst Leerzeichen enthält und daher in Anführungszeichen gesetzt werden muss. Gibt es eine Möglichkeit, das Skript in `" C: \ Some Other Place \ MyBatchFile.bat "Param1 Param2" zu übergeben? // BEARBEITEN: Eine Problemumgehung besteht darin, einen unpaced-Link zum Skript mit Abstand zu verwenden. Lilienthal vor 6 Jahren 0
So verwenden Sie diese Lösung: ** 1: ** Erstellen Sie die Batch-Datei, die Sie ausführen möchten (dh unter "C: \ apps \ mybatch.bat"). ** 2: ** Das Skript "invisible.vbs" erstellen (dh unter "C: \ apps \ invisible.vbs"). ** 3: ** Erstellen Sie eine neue Verknüpfung, indem Sie mit der rechten Maustaste auf den * Hintergrund * (leere Stelle) des Ordners klicken, in dem Sie die Verknüpfung speichern möchten. Klicken Sie im Kontextmenü mit der Maus auf "Neu" und klicken Sie auf "Verknüpfung". Geben Sie als "Position des Elements" wscript.exe "C: \ apps \ invisible.vbs" "C: \ apps \ mybatch.bat" ein. Durch Doppelklicken auf diese Verknüpfung wird die Batchdatei automatisch gestartet. James vor 5 Jahren 0
25
Paul Cheselske

So blenden Sie Batchdateien oder Befehlsdateien oder andere Dateien aus .... Verwenden Sie das integrierte Windows XP- IExpress.exeDienstprogramm, um eine EXE-Datei aus der Batchdatei zu erstellen. IExpressStellen Sie bei der Verwendung sicher, dass Sie die Option zum Ausführen des Verdecks aktivieren, und aktivieren Sie alle Kontrollkästchen, um nichts anzuzeigen. Nachdem Sie Ihre .exe-Datei erstellt haben, legen Sie sie in einem beliebigen Befehlsordner ab, und Sie werden nie sehen, dass sie ausgeführt wird.

Oh, eigentlich eine gute Lösung. Camilo Martin vor 11 Jahren 1
Gibt es etwas Äquivalent zu lexpress.exe in neueren Windows-Versionen wie Windows 7? Sнаđошƒаӽ vor 8 Jahren 6
@ Sнаđошƒаӽ Es ist in Windows 7 .... habe es gerade getestet DarthRubik vor 7 Jahren 0
@DarthRubik Danke für das Teilen. Ich habe es auch getestet und es funktioniert gut. Zeit, die Antwort zu bestätigen. :) Sнаđошƒаӽ vor 7 Jahren 0
Dies scheint unter Windows 10 64 nicht zu funktionieren, da "Command.com" nicht mehr vorhanden zu sein scheint Arne S vor 6 Jahren 0
Ich kann den Kommentar von @ArneS bestätigen. Sie können die EXE-Datei erstellen, sie wird jedoch aufgrund fehlender Dateien nicht ausgeführt (z. B. Command.com). Bram Vanroy vor 5 Jahren 0
8
joe

use Cmdow ist ein Win32-Befehlszeilen-Dienstprogramm für NT4 / 2000 / XP / 2003, mit dem Fenster aufgelistet, verschoben, in der Größe geändert, umbenannt, ausgeblendet / ausgeblendet, deaktiviert / aktiviert, minimiert, maximiert, wiederhergestellt, aktiviert / deaktiviert, geschlossen, beendet und deaktiviert werden können Mehr.

Führen Sie eine versteckte Batchdatei aus, und übergeben Sie die folgenden Parameter: -

cmdow / run / hid mybat arg1 "arg 2" versteckt

Aber wie soll ich diesen Befehl ausführen? Moayad Mardini vor 14 Jahren 0
cmdow wird von den meisten Antivirus-Produkten als Malware erkannt. Daher ist es schwierig, diese Lösung an anderen Orten als Ihrem eigenen PC einzusetzen. Ganesh R. vor 14 Jahren 9
@Ganesh: Gibt es eine bessere Lösung? Moayad Mardini vor 14 Jahren 0
Ist es Open Source? Es ist sinnlos, eine Drittanbieter-App zu verwenden, die nicht Open Source ist und möglicherweise Trojaner packen würde, wenn Sie dasselbe tun könnten, indem Sie harrymcs 1-Zeilen-Vbscript ausführen (siehe die Antwort oben im Thread). thebunnyrules vor 6 Jahren 0
Nun, es ist Open Source, das ist also großartig. Den Quellcode erhalten Sie hier: https://github.com/ritchielawrence/cmdow thebunnyrules vor 6 Jahren 1
@thebunnyrules Gibt es irgendwo eine kompilierte Version davon? Die Quelle ist für mich ohne C ++ - Compiler unbrauchbar. Und ich möchte wirklich keinen C ++ - Compiler für eine einzelne App herunterladen und installieren. corsiKa vor 6 Jahren 0
7
John T

Führen Sie das Skript über einen at-Job aus, ohne es interaktiv zu machen:

at 11:00 script.bat 

Eine andere Lösung: Wenn Sie nichts dagegen haben, etwas wie Python zu installieren, können Sie einfach ein Skript erstellen und es mit pythonw(der verknüpften Version für GUI-Vorgänge) ausführen. Da Sie keine grafischen APIs verwenden, wird das Fenster nicht angezeigt. Verwenden Sie einfach Aufrufe von os.system()und es wird ein Batch-Skript nachgebildet, da es dem Eingeben der Zeichenfolgen in die Befehlszeile entspricht.

Beispiel:

import os  os.system("tasklist > C:\tasks.txt") os.system("ipconfig /all > C:\netinfo.log") 
Aber wie soll ich diesen Befehl ausführen? Moayad Mardini vor 14 Jahren 3
Sie müssen entweder eine geplante Aufgabe planen oder einen Dienst schreiben. Unfundednut vor 14 Jahren 0
Beispiele hinzugefügt. John T vor 14 Jahren 0
7
Jack S

If your Batch File can fit into one line and so many characters, then just use a Shortcut by right clicking inside a folder put in a random directory, and skip through the rest of the wizard, and lastly right click on the shortcut just created and click properties and under target, input what you would usually put in a bat file. And Bobs your uncle!

Pros:

 No Command Window Ability to use an icon Same Functionality of bat file 

Cons:

 Limited to one line, so many characters 
Das einzige Problem ist, dass Sie keinen Dateityp mit einer Verknüpfung verknüpfen können. Wenn Sie also ein Skript mit einem Batch-Skript durch Doppelklick im Explorer öffnen möchten, benötigen Sie noch eine .bat-Datei. Björn Lindqvist vor 10 Jahren 0
Ich versuche immer noch, Onkel Bob zu finden. Pimp Juice IT vor 6 Jahren 0
5
djangofan

Using Windows7, you can use the "Scheduled Task" control panel to schedule a batch file to run in the background invisibly with specified permissions and even as the "SYSTEM" account. See screenshot below:

enter image description here

Furthermore, although with not as many capabilities, you can also create a invisible batch script task like this from the command line using the "AT.exe" command without the '/interactive' option.

Ausgeblendetes Kontrollkästchen blendet die Aufgabe einfach aus der Taskplaner-Benutzeroberfläche aus ( Sourav Ghosh vor 7 Jahren 3
Das Ausführen einer Aufgabe als "SYSTEM", wenn keine "SYSTEM" -Privilegien erforderlich sind (und nicht auf Sicherheitslücken untersucht und verhärtet wurden), ist eine schlechte Idee. Siehe [die Kommentare hier] (https://stackoverflow.com/q/6568736/1672723#6568823). Scott vor 5 Jahren 0
4
Brad Gilbert

Sie können es minimiert ausführen.

start /MIN batch.cmd 
oder benutze stattdessen / B! rany vor 7 Jahren 2
4
BijaN-R

Ich mag keine VBScript-Lösung.

Laden Sie die Datei nircmd.exe herunter und kopieren Sie sie in Ihren %systemroot%\system32Ordner. Fügen Sie dann den Befehl zur ersten Zeile Ihres Stapels hinzu:

nircmd.exe win hide ititle "cmd.exe" 

oder machen Sie Ihren Batch-Titel zuerst mit dem titleBefehl benutzerdefiniert, um zu verhindern, dass alle cmdFenster wie folgt verdeckt werden :

title MyBatch nircmd.exe win hide ititle "MyBatch" 
Ich verwende genau diese Methode, scheiterte jedoch einige Zeit lang daran, dass nircmd das cmd-Fenster nicht verdeckt, sondern nur in der Taskleiste minimiert und nicht durch Klicken wiederhergestellt werden kann. Ich weiß nicht warum ... James Yang vor 5 Jahren 0
3
Rolnik

Es scheint, dass jemand eine Liste der 7-8 Möglichkeiten gemacht hat, "still" zu laufen:

http://forums.techguy.org/dos-other/644932-solved-howto-run-batch-file.html

Bitte listen Sie sie hier auf, posten Sie keine Antwort, die nur ein Link an anderer Stelle ist. endolith vor 6 Jahren 5
3
BullyWiiPlaza

Die ausgezeichnete Bat To Exe Converter konvertiert Ihre .batoder .cmdin eine Datei .exeDatei.

Es hat eine einfache Benutzeroberfläche. Sie können festlegen, dass kein Konsolenfenster angezeigt wird, indem Sie die Option "Unsichtbare Anwendung" auswählen. Außerdem können Sie ein Symbol zuweisen, zugehörige Dateien packen und verschiedene andere Optionen festlegen.

Hier ist ein Screenshot des Hauptfensters:


Beachten Sie, dass dieses Bild nicht mehr aktuell ist. Es zeigt die Version 2.4.8 und ab September 2018 bietet die Website die Version 3.0.10.0 (zuletzt aktualisiert am 23.03.2017).

Achtung: Die Website www.f2ko.de verlinkt coinhive.com, die weithin als Malware erkannt wird .