J'ai cette ligne dans mon fichier BAT:
"Example1Server.exe"
Je voudrais exécuter ceci en mode administrateur. Comment modifier le code de la batte pour l'exécuter en tant qu'administrateur?
Est-ce correct? Dois-je mettre les citations?
runas /user:Administrator invis.vbs Example1Server.exe
Vous utilisez runas
pour lancer un programme en tant qu'utilisateur spécifique:
runas /user:Administrator Example1Server.exe
L'autre réponse nécessite la saisie du mot de passe du compte administrateur. En outre, l’exécution sous un compte du groupe d’administrateurs n’est pas la même chose que exécuté en tant qu’administrateur voir: UAC sur Wikipedia
Instructions Windows 7
Afin de fonctionner en tant qu'administrateur, créez un raccourci pour le fichier de commandes.
Ensuite, vous pouvez configurer le raccourci pour qu'il s'exécute en tant qu'administrateur:
Maintenant, lorsque vous double-cliquez sur le raccourci, il vous demandera de confirmer le contrôle de compte d'utilisateur puis Exécuter en tant qu'administrateur (qui, comme je l'ai dit plus haut, est différent de l'exécution sous un compte du groupe d'administrateurs)
Vérifiez la capture d'écran ci-dessous
Remarque: Lorsque vous exécutez Exécuter en tant qu'administrateur, le répertoire actuel (chemin) ne sera pas identique au fichier bat. Cela peut causer des problèmes dans de nombreux cas, le fichier chauve-souris faisant référence à des fichiers relatifs à côté de lui. Par exemple, sous Windows 7, le répertoire actuel sera SYSTEM32 au lieu de l'emplacement du fichier bat! Pour contourner ce problème , vous devez utiliser
cd "%~dp0"
ou mieux
pushd "%~dp0"
pour vous assurer que le répertoire est sur le même chemin que le fichier bat.
Si vous pouvez utiliser un utilitaire tiers, voici un utilitaire de ligne de commande elevate
.
Ceci est la description de l'utilisation:
Usage: Elevate [-?|-wait|-k] prog [args]
-? - Shows this help
-wait - Waits until prog terminates
-k - Starts the the %COMSPEC% environment variable value and
executes prog in it (CMD.EXE, 4NT.EXE, etc.)
prog - The program to execute
args - Optional command line arguments to prog
Vous pouvez utiliser nircmd.exe 's elevate command
Référence de la commande NirCmd - elevate
elevate [Program] {Command-Line Parameters}
_ {Pour Windows Vista/7/2008 uniquement: exécuter un programme avec des droits d'administrateur. Lorsque le [Programme] contient un ou plusieurs espaces, vous devez le mettre entre guillemets.
Exemples:
elevate notepad.exe
elevate notepad.exe C:\Windows\System32\Drivers\etc\HOSTS
elevate "c:\program files\my software\abc.exe"
PS: je l'utilise sur win 10 et ça marche
Je pense avoir une solution au problème de mot de passe… .. Ce seul argument est vraiment étonnant. Il demande une fois le mot de passe et ne le redemande jamais. Même si vous le mettez sur un autre programme, il ne vous demandera pas le mot de passe. C'est ici:
runas /user:Administrator /savecred Example1Server.exe
convertissez votre fichier batch en .exe avec cet outil: http://www.battoexeconverter.com/ vous pouvez l’exécuter en tant qu’administrateur
go get github.com/mattn/Sudo
Ensuite
Sudo Example1Server.exe
Mon expérimentation indique que la commande runas doit inclure le domaine de l'utilisateur admin (du moins dans la configuration environnementale de mon entreprise):
runas /user:AdminDomain\AdminUserName ExampleScript.bat
Les réponses fournies par Kerrek SB et Ed Greaves exécuteront le fichier cible sous l'utilisateur admin, mais si le script cible est un fichier ".bat", ils ne le feront pas. t réellement mettre à niveau les commandes dans le script afin d’obtenir les autorisations de niveau administrateur de l’utilisateur admin, au moins lorsqu’il tente d’ajouter par exemple à l’ajout ou à la modification de clés de registre qui sont par ailleurs verrouillées par la stratégie de groupe.
Est-ce que quelqu'un sait comment mettre à niveau les commandes bat-file (CMD) avec les autorisations d'administrateur?
Ajoutez simplement ceci en haut de votre fichier chauve-souris:
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", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )
Il passera à admin et restera également dans le bon répertoire. Testé sous Windows 10.
Devrait certainement fonctionner en ajoutant ces lignes en haut de votre fichier chauve-souris. Cela sauve littéralement la vie!
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", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )
Utilisez le chemin physique complet du lecteur vers le fichier de traitement cible dans les propriétés du raccourci.
Cela ne fonctionne pas sous Windows 10 si vous utilisez des lecteurs de poste tels que j'ai essayé de le faire au début ...