Exécuter un script batch en modifiant le niveau du contrôle de compte d’utilisateur

Rédigé par O. Clotaire Aucun commentaire Fil RSS des articles
Classé dans : Windows, Sécurité Mots clés : Windows, Script, UAC

L’UAC, fait parti de Windows depuis la version de Vista et permet aux applications de modifier le système d'exploitation.

J'ai eu récemment besoin d'utiliser un batch (*.bat ou *.cmd) pour une installation à distance. 

Malgré le compte Administrateur, je me suis retrouvé bloqué par un avertissement de l'UAC de Windows demandant l'autorisation à l'application de s’installer sur l'ordinateur. Ne pouvant modifier la configuration de ce dernier de manière permanente, j'ai trouvé ce bout de code qui m'a permis de déclencher la mise à niveau de l'UAC avant de poursuivre les commandes de mon script.

Selon Microsoft : "Le rôle du contrôle de compte d’utilisateur est de vous prévenir avant que des modifications nécessitant une autorisation de niveau Administrateur soient effectuées sur votre ordinateur."

Il faut donc que le compte Administrateur utilisé soit autorisé à exécuter vos instructions que vous allez coller à la fin de ce code.

Code installation.bat :
@echo off

:: On exécute les commandes en tant qu'administrateur 

::-------------------------------------
REM  -->  Vérification des permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> Erreur si vous ne possédez pas les droits Administrateurs
if '%errorlevel%' NEQ '0' (
    echo Vérification des privilèges Administrateurs
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"="
    echo UAC.ShellExecute "%~s0", "%params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs" 
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0" 
    goto Install

:gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0" goto Install
::--------------------------------------
:Install
:: COLLER VOS INSTRUCTIONS CI-DESSOUS :
Principe de fonctionnement :

Nous nous basons sur l’exécution d'un script VBS capable d'augmenter le niveau des privilèges de l'UAC.

- On commence par vérifier les droits du compte utilisé.
- Si les droits sont suffisant, on augmente le niveau de privilège permettant la modification du système en créant le script getadmin.vbs.
- Vos instructions sont ensuite exécutés.


Remarques :

- Le batch doit être placé dans un dossier où il a accès en écriture et doté d'une lettre de lecteur.
- Méthodes manuelle pour exécuter en tant qu'Administrateur :

- clic droit puis Exécuter en tant qu’administrateur
- Shift + Clic droit + Exécuter en tant qu'un autre utilisateur. Ensuite vous ajouter les informations, login et mot de passe de l'Administrateur

Cet article peut vous intéresser : Déployer des logiciels en conservant le contrôle de compte d’utilisateur activé sur les postes distants

Remerciements : Wikipédia, stackoverflow.com

A PROPOS

  • Grace à mon expérience dans les Systèmes d'Information, j'ai le privilège de partager mon expérience en les centralisant sous la forme d’une base de connaissance.
  • Parfois certaines de nos questions ne trouvent pas toujours de réponse. Le domaine de l’informatique évolue rapidement, il est alors important de pouvoir profiter des solutions déjà expérimentés.
  • Ce site sera de plus en plus accessible.
  • Je vous remercie d’avance pour vos éventuelles remarques constructives permettant son amélioration.

Écrire un commentaire

 Se rappeler de moi sur ce site
Quelle est la quatrième lettre du mot judrvv ?

Fil RSS des commentaires de cet article

↓