169 votes

Comment coder un fichier BAT pour qu'il soit toujours exécuté en mode administrateur ?

J'ai cette ligne dans mon fichier BAT :

"Example1Server.exe"

Je voudrais l'exécuter en mode administrateur. Comment modifier le code bat pour l'exécuter en tant qu'administrateur ?

Est-ce correct ? Dois-je mettre les guillemets ?

runas /user:Administrator invis.vbs Example1Server.exe

1 votes

1 votes

6voto

mattn Points 2954
go get github.com/mattn/sudo

Puis

sudo Example1Server.exe

5voto

Anonymous Points 720

Lorsque vous utilisez le /savecred il demande le mot de passe une fois, puis ne le redemande plus jamais. Même si vous le mettez dans un autre programme, il ne demandera pas le mot de passe. Exemple pour votre question :

runas /user:Administrator /savecred Example1Server.exe

5voto

pstraton Points 1
  1. Mes expériences indiquent que le runas doit inclure le domaine de l'utilisateur admin (du moins dans la configuration environnementale de mon organisation) :

    runas /user:AdminDomain\AdminUserName ExampleScript.bat

    Si vous ne connaissez pas encore le domaine de l'utilisateur admin, exécutez une instance de Command Prompt en tant qu'utilisateur admin et entrez la commande suivante :

    echo %userdomain%
  2. Les réponses fournies par les deux Kerrek SB y Ed Greaves exécutera le fichier cible sous l'utilisateur admin mais, si le fichier est un script Command (fichier .bat) ou un script VB (fichier .vbs) qui tente d'opérer sur l'environnement de l'utilisateur normalement connecté (comme changer les entrées du registre), vous pouvez ne pas obtenir les résultats désirés parce que l'environnement sous lequel le script s'exécute réellement sera celui de l'utilisateur admin, pas l'utilisateur normalement connecté ! Par exemple, si le fichier est un script qui opère sur la ruche HKEY_CURRENT_USER du registre, l'"utilisateur actuel" affecté sera l'utilisateur administrateur, et non l'utilisateur normalement connecté.

5voto

xxedxx Points 21

Convertissez votre fichier batch en .exe avec cet outil : http://www.battoexeconverter.com/ alors vous pouvez l'exécuter en tant qu'administrateur

2 votes

N'oubliez pas que beaucoup d'anti-virus sont très sensibles aux fichiers exe construits de cette façon. La "conversion/le cryptage" des fichiers batch de cette manière est une vieille méthode utilisée par les programmes malveillants.

0 votes

Si vous analysez ce domaine à l'aide de Symantec -- Threat Type : othermalware Threat Reason : Domaine signalé et vérifié comme servant des logiciels malveillants. Identifié comme domaine ou URL malveillant.

0 votes

Mauvaise suggestion !

1voto

Achilles Points 466

J'ai testé La réponse de @Sire sur Windows 11, et ça marche comme sur des roulettes. Il convient de mentionner que l'utilisation de cmd /k - comme @Sire l'a utilisé - gardera le CMD de l'administrateur ouvert après la fin de son exécution. En utilisant cmd /c au lieu de fermer la fenêtre lorsque le fichier batch est terminé.

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/c cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X