Question Exécuter un fichier de commandes d'une manière complètement cachée


Je cherche un moyen d'exécuter un fichier de commandes (.bat) sans rien de visible pour l'utilisateur (pas de fenêtre, pas de nom de barre des tâches, .etc ..).

Je ne veux pas utiliser un programme pour cela, je cherche quelque chose de plus propre. J'ai trouvé une solution qui utilise VBScript, mais je n'aime pas vraiment utiliser VBS non plus.


113
2017-10-29 12:42


origine


Haha! Définitivement pas. Je développe un service Windows qui exécutera un fichier de commandes de temps en temps. - Moayad Mardini
Les services Windows ne s'exécutent pas en tant que fichiers de commandes. Ils fonctionnent comme des services. Vous devez clarifier la question - tel qu’écrit et avec des commentaires, cela n’a aucun sens pour moi. - CarlF
J'ai un service Windows qui exécute des fichiers de commandes. Le service n'est pas un fichier de commandes. - Moayad Mardini
Dans quelle langue écrivez-vous votre service? - Hugh Allen
il y a hstart aussi. - barlop


Réponses:


Solution 1: 

Enregistrez cette ligne de texte en tant que fichier invisible.vbs:

CreateObject ("Wscript.Shell"). Exécutez "" ""   & WScript.Arguments (0) & "" "", 0,   Faux

Pour exécuter un programme ou un fichier de commandes de manière invisible, utilisez-le comme suit:

wscript.exe   "C: \ Wherever \ invisible.vbs" "C: \ Some   Autre lieu \ MyBatchFile.bat "

Pour être également capable de transmettre / relayer une liste d'arguments, n'utilisez que deux guillemets

CreateObject ("Wscript.Shell"). Exécuter ""   & WScript.Arguments (0) & "", 0,   Faux

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

Solution 2:

Utilisez un outil de ligne de commande pour lancer un processus en mode silencieux: Silencieux, hidecon ou hideexec.


94
2017-10-29 16:29



Pourquoi 4 doubles citations, pourriez-vous s'il vous plaît expliquer? - Starx
Et si nous devions lancer un programme caché? - Starx
@Starx VB syntaxe. & signifie concaténer des chaînes. Les chaînes sont entre guillemets ("). Citations doubles consécutives ("") les délimiteurs de chaîne signifient un double guillemet littéral ("). Donc, quatre guillemets doubles ("""") serait un littéral de chaîne d'un caractère, un guillemet double ("). Rassemblez-le et """" & WScript.Arguments(0) & """" deviendrait "<argument>", où <argument> est le premier argument de ligne de commande passé au script. - Bob
Comment le modifier pour qu'il passe tous les arguments? Il serait plus commode de passer les arguments sans les citer. - Ctrl-C
Cela ne vous oblige-t-il pas encore à créer un fichier batch pour wscript.exe "C:\Wherever\invisible.vbs" ... à l'intérieur de? - endolith


Pour masquer des fichiers de commandes ou des fichiers de commandes ou des fichiers .... Utilisez Windows XP intégré IExpress.exe utilitaire pour créer un fichier .EXE à partir du fichier de commandes. En utilisant IExpress assurez-vous de cocher l'option Exécuter caché et cochez toutes les cases pour ne rien afficher. Après avoir créé votre fichier .exe, placez-le dans le dossier de commande que vous avez choisi et vous ne le verrez jamais apparaître.


24
2018-06-29 21:06



Oh, bonne solution en fait. - Camilo Martin
Y at-il quelque chose d’équivalent à lexpress.exe dans les nouvelles versions de Windows telles que Windows 7? - Sнаđошƒаӽ
@ Sнаđошƒаӽ C'est dans Windows 7 .... juste testé - DarthRubik
@DarthRubik Merci de partager cela. Je l'ai aussi testé et ça marche très bien. Il est temps de répondre à la question. :) - Sнаđошƒаӽ
Cela ne semble pas fonctionner sur Windows 10 64 puisque le "Command.com" ne semble plus être présent - Arne S


utilisation Cmdow est un utilitaire de ligne de commande Win32 pour NT4 / 2000 / XP / 2003 qui permet de lister, déplacer, redimensionner, renommer, masquer / masquer, désactiver / activer, minimiser, maximiser, restaurer, activer / désactiver, fermer, tuer, etc.

Exécutez un fichier batch caché en lui passant les paramètres: -

cmdow / exécuter / caché mybat arg1 "arg 2"


8
2017-10-29 12:48



Mais comment pourrais-je exécuter cette commande? - Moayad Mardini
cmdow est détecté en tant que malware par la plupart des produits antivirus. Par conséquent, il serait difficile d'utiliser cette solution ailleurs que sur votre propre PC. - Ganesh R.
@Ganesh: Une meilleure solution? - Moayad Mardini
Est-ce open source? Il est inutile d'utiliser une application tierce qui n'est pas open source et qui pourrait contenir des chevaux de Troie alors que vous pourriez faire la même chose en exécutant le vbscript de 1 ligne de harrymc (voir sa réponse en haut du fil). - thebunnyrules
Eh bien, c'est open source, donc c'est vraiment génial. Peut obtenir le code source ici: github.com/ritchielawrence/cmdow - thebunnyrules


Exécutez le script via un travail sans le rendre interactif:

at 11:00 script.bat

Une autre solution, si cela ne vous dérange pas d'installer quelque chose comme Python, vous pourriez simplement créer un script et l'exécuter avec pythonw (la version liée pour les opérations d'interface graphique). Comme vous n'utilisez aucune API graphique, la fenêtre ne s'affiche pas. Utilisez simplement les appels à os.system() et il imitera un script batch, car il est identique à taper les chaînes dans la ligne de commande.

Exemple:

import os

os.system("tasklist > C:\tasks.txt")
os.system("ipconfig /all > C:\netinfo.log")

7
2017-10-29 12:49



Mais comment pourrais-je exécuter cette commande? - Moayad Mardini
Vous devez planifier une tâche planifiée ou écrire un service. - Unfundednut
exemples ajoutés. - John T


Si votre fichier batch peut contenir une ligne et autant de caractères, utilisez simplement un raccourci en cliquant avec le bouton droit de la souris dans un dossier placé dans un répertoire aléatoire, et parcourez le reste de l'assistant. Cliquez sur les propriétés et sous la cible, saisissez ce que vous placeriez habituellement dans un fichier de chauve-souris. Et bobs ton oncle!

Avantages:

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

Les inconvénients:

 Limited to one line, so many characters

7
2018-01-13 03:36



excellente réponse pour moi - johny why
Le seul problème est que vous ne pouvez pas associer un type de fichier à un raccourci. Donc, si vous voulez ouvrir un script de commandes en double-cliquant dessus dans l'explorateur, vous avez toujours besoin d'un fichier .bat. - Björn Lindqvist
J'essaie toujours de trouver Oncle Bob, est là partout !! - Pimp Juice IT


En utilisant Windows7, vous pouvez utiliser le panneau de configuration "Tâches planifiées" pour planifier un fichier de commandes à exécuter en arrière-plan de manière invisible avec les autorisations spécifiées et même en tant que compte "SYSTEM". Voir la capture d'écran ci-dessous:

enter image description here 

En outre, même si les fonctionnalités ne sont pas aussi nombreuses, vous pouvez également créer une tâche de script batch invisible à partir de la ligne de commande à l'aide de la commande "AT.exe" sans l'option "/ interactive".


6
2018-01-09 20:57



La case à cocher masquée masque simplement la tâche depuis l’interface utilisateur du planificateur de tâches ( - Sourav Ghosh


Vous pouvez l'exécuter facilement.

start /MIN batch.cmd

4
2017-10-29 15:54



ou utilisez / B à la place! - rany


Il semblerait que quelqu'un ait fait une liste des 7 à 8 façons de courir «en silence»:

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


3
2018-01-26 19:38



Veuillez les énumérer ici, ne pas poster une réponse qui n'est qu'un lien ailleurs. - endolith


Je n'aime pas la solution VBScript.

Télécharger et copier nircmd.exe à ton %systemroot%\system32 dossier, puis ajoutez cette commande à la première ligne de votre lot:

nircmd.exe win hide ititle "cmd.exe"

ou faites votre titre de lot personnalisé en premier avec title commande pour éviter de tout cacher cmd fenêtres, comme ceci:

title MyBatch
nircmd.exe win hide ititle "MyBatch"

3
2018-05-12 08:25



J'utilise cette méthode exacte, mais depuis un certain temps, nircmd ne cache pas la fenêtre cmd, simplement réduite à la barre des tâches et ne peut pas être restaurée en cliquant dessus. Je ne sais pas pourquoi ... - James Yang