Windows Tips & News

Comment élever automatiquement un fichier batch pour l'exécuter en tant qu'administrateur

CONSEILLÉ: Cliquez ici pour résoudre les problèmes de Windows et optimiser les performances du système

Parfois, vous devez créer un fichier batch qui inclut des commandes nécessitant des droits élevés. En raison de la fonction UAC incluse dans Windows depuis Windows Vista, lors du démarrage d'un fichier batch, il s'ouvre sans les droits d'accès requis sauf si vous faites un clic droit dessus et sélectionnez "Exécuter en tant qu'administrateur" dans le contexte menu. Voici comment vous pouvez créer un fichier batch qui s'élèvera automatiquement.

Publicité


Avant de continuer, consultez comment ajouter un fichier batch (*.bat) au nouveau menu de l'explorateur de fichiers. Placez le contenu suivant au début de votre fichier batch :
:: Vérifiez et obtenez automatiquement les droits d'administrateur V2. @Écho off. CLS. ÉCHO. ECHO ECHO Exécution du shell d'administration. ECHO: init. setlocal DisableDelayedExpansion. définir "batchPath=%~0" pour %%k dans (%0), définissez batchName=%%~nk. définir "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" setlocal EnableDelayedExpansion :checkPrivileges. FICHIER NET 1>NUL 2>NUL. if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ) :getPrivileges. if '%1'=='ELEV' (écho ELEV & shift /1 & goto gotPrivileges) ÉCHO. ÉCHO ************************************** ECHO invoquant l'UAC pour l'escalade de privilèges. ECHO ************************************** ECHO Définir UAC = CreateObject^("Shell. Application"^) > "%vbsGetPrivileges%" ECHO args = "ELEV " >> "%vbsGetPrivileges%" ECHO pour chaque strArg dans WScript. Arguments >> "%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" ECHO Suivant >> "%vbsGetPrivileges%" ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %* exit /B :gotPrivileges. setlocal & pushd. cd /d %~dp0. if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) ::START. REM Exécutez le shell en tant qu'administrateur (exemple) - mettez ici le code comme vous le souhaitez. ECHO %batchName% Arguments: %1 %2 %3 %4 %5 %6 %7 %8 %9.

Placez vos propres commandes par lots qui nécessitent une élévation en dessous de la dernière ligne.

Le code fourni créera un fichier VBS spécial qui le redémarrera s'il ne s'exécute pas en tant qu'administrateur. Ainsi, si vous le lancez avec des autorisations limitées, vous obtiendrez une invite UAC vous demandant d'élever les privilèges avant d'exécuter ses commandes !

Voici à quoi cela ressemble dans Windows 10 :Fichier de commandes Windows 10

Demande UAC de fichier batch Windows 10

Windows 10 élève automatiquement un fichier batchLes crédits pour ce code vont à Mat.

CONSEILLÉ: Cliquez ici pour résoudre les problèmes de Windows et optimiser les performances du système
Remplacer les vignettes de numérotation rapide par des images personnalisées dans Vivaldi

Remplacer les vignettes de numérotation rapide par des images personnalisées dans Vivaldi

CONSEILLÉ: Cliquez ici pour résoudre les problèmes de Windows et optimiser les performances du sy...

Lire la suite

Le mot de réveil 'Hey Cortana' n'est plus disponible dans la bêta de Cortana

Le mot de réveil 'Hey Cortana' n'est plus disponible dans la bêta de Cortana

Cela ressemble à la version 2.2004.22762.0 du Application Cortana bêta perdu la capacité de réagi...

Lire la suite

Faire en sorte que Google Chrome affiche les parties HTTP et WWW de l'URL

Faire en sorte que Google Chrome affiche les parties HTTP et WWW de l'URL

CONSEILLÉ: Cliquez ici pour résoudre les problèmes de Windows et optimiser les performances du sy...

Lire la suite