IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

W10 Détecter si le script est lancé en administrateur


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 18
    Points : 23
    Points
    23
    Par défaut W10 Détecter si le script est lancé en administrateur
    Bonjour.

    Je suis sous Windows 10 Insider Preview, et j'aimerais que le script fasse les actions suivantes:
    - Détecter si le script est lancé en mode administrateur ou nonok
    - Si, non administrateur, quitter automatiquement après 3 secondes. Je n'arrive pas à mettre 3 secondes...

    Question:
    Est-il possible de relancer automatiquement le script en mode admin ?

    Pouvez vous m'aider, s'il vous plait ?
    Merci

    Voici le script complet:

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    @echo off & cls
    Mode con cols=72 lines=10
     
    ::*********************************************************************************
    echo.
    NET SESSION >nul 2>&1
    IF %ERRORLEVEL% EQU 0 (
    	ECHO Administrator PRIVILEGES Detected! 
    	Ping 127.0.0.1 3>&1 >nul
    	goto NEXT
    ) ELSE (
    	echo ####### ERROR: ADMINISTRATOR PRIVILEGES REQUIRED #########
    	echo This script must be run as administrator to work properly!  
    	echo Please, right click and select "Run As Administrator".
    	echo ##########################################################
    	echo This script will be closed in few seconds.
    	Ping 127.0.0.1 3>&1 >nul 2>&1
    	goto EOF
    )
     
    :NEXT
    cls
    title Welcome, let's continue.
    echo Screen cleaned!
    echo.
    pause>nul
     
    :EOF
    EXIT/B 1

    Je n'arrive pas à mettre un:
    - Set message_not_admin qui comporte un texte à plusieurs lignes, en gros le pavé ERROR: ADMINISTRATOR PRIVILEGES REQUIRED
    - Je suis pas sûr si le :EOF soit nécessaire tous les deux, surtout pour le EXIT /B 1

  2. #2
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Points : 738
    Points
    738
    Billets dans le blog
    2
    Par défaut
    - Détecter si le script est lancé en mode administrateur ou nonok
    Si le script est lancé par l'utilisateur "Administrateur" alors la variable '%UserName%' vaut "Administrateur".

    - Si, non administrateur, quitter automatiquement après 3 secondes. Je n'arrive pas à mettre 3 secondes...
    La commande 'timeout' permet d'attendre un certain nombre de secondes.

    Est-il possible de relancer automatiquement le script en mode admin ?
    Avec la commande 'runas'

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    @echo off & cls
    mode con cols=72 lines=10
     
    ::*********************************************************************************
    echo.
    if not "%UserName%"=="Administrateur" (
      echo ####### ERROR: ADMINISTRATOR PRIVILEGES REQUIRED #########
      echo This script must be run as administrator to work properly!  
      echo Please, right click and select "Run As Administrator".
      echo ##########################################################
      echo This script will be closed in few seconds.
      1>nul timeout /t 3 /nobreak
      runas /user:Administrateur %0 %*
      pause
      exit /b 1
    )
    echo Administrator PRIVILEGES Detected! 
    1>nul timeout /t 3 /nobreak
    cls
    title Welcome, let's continue.
    echo Screen cleaned!
    echo.
    pause
    exit /b 0

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 18
    Points : 23
    Points
    23
    Par défaut
    Bonjour InitSreen,

    Votre script me demande de mettre le mot de passe, mais je ne peux écrire le mot de passe sur la console. Dans l'écran de connexion, j'utilise PIN au lieu du mot de passe.

    Je suis totalement ravi du script que vous proposez pour le mot de passe.
    Est-il possible de m'expliquer comment ça fonctionne ?


    Cordialement,
    ps: mon Windows 10 est en anglais.

  4. #4
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Points : 738
    Points
    738
    Billets dans le blog
    2
    Par défaut
    Oui, il faut remplacer "Administrateur" par "Administrator" et pour le mot de passe c'est normale qu'il n'affiche rien.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 18
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par InitSreen Voir le message
    Oui, il faut remplacer "Administrateur" par "Administrator" et pour le mot de passe c'est normale qu'il n'affiche rien.
    Mais du coup, si l'utilisateur (admin) double clique sans "Run as admin", le mot de passe ne doit pas être mis ?

    edit:
    Voici le script actuel en prenant en compte l'attente de 3 secondes dans le cas où le script n'est pas lancé en mode administrateur,
    en effet si c'est administrateur j'ai choisi de ne pas afficher de texte + pas d'attente:

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    NET SESSION >nul 2>&1
    IF %ERRORLEVEL% EQU 0 (
    	You are running with administrator privileges.
    	::goto NEXT
    ) ELSE (
    	echo ####### ERROR: ADMINISTRATOR PRIVILEGES REQUIRED #########
    	echo This script must be run as administrator to work properly!  
    	echo Please, right click and select "Run As Administrator".
    	echo This script will be closed in few seconds.
    	echo ##########################################################
    	1>nul timeout /t 3 /nobreak
    	exit /b 1
    	::goto EOF
    )

    Je dois également mettre ?
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if not "%UserName%"=="Administrator" (
      echo ####### ERROR: ADMINISTRATOR PRIVILEGES REQUIRED #########
      1>nul timeout /t 3 /nobreak
      runas /user:Administrator %0 %*

  6. #6
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Points : 738
    Points
    738
    Billets dans le blog
    2
    Par défaut
    Ca dépend de ta config mais apriori non

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 18
    Points : 23
    Points
    23
    Par défaut
    Je me suis permis d'éditer mon précédent message.
    Donc,
    Le mot de passe demandé peut être écrit ou pas ? car je comprend pas trop.

    C'est quoi le script pour demander le mot de passe de l'administrateur ou le PIN afin de lancer le script en mode administrateur si celui ci a été lancé par un double clique simple ?

  8. #8
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Points : 738
    Points
    738
    Billets dans le blog
    2
    Par défaut
    Le code suivant:

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if not "%UserName%"=="Administrator" (
      echo ####### ERROR: ADMINISTRATOR PRIVILEGES REQUIRED #########
      echo This script must be run as administrator to work properly!  
      echo Please, right click and select "Run As Administrator".
      echo This script will be closed in few seconds.
      echo ##########################################################
      1>nul timeout /t 3 /nobreak
      runas /user:Administrator %0 %*
    )

    remplace ce code :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    NET SESSION >nul 2>&1
    IF %ERRORLEVEL% EQU 0 (
    	You are running with administrator privileges.
    	::goto NEXT
    ) ELSE (
    	echo ####### ERROR: ADMINISTRATOR PRIVILEGES REQUIRED #########
    	echo This script must be run as administrator to work properly!  
    	echo Please, right click and select "Run As Administrator".
    	echo This script will be closed in few seconds.
    	echo ##########################################################
    	1>nul timeout /t 3 /nobreak
    	exit /b 1
    	::goto EOF
    )

    et le mot de passe n'affiche pas se qui est saisie au clavier mais c'est bel et bien saisie

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 18
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par InitSreen Voir le message
    et le mot de passe n'affiche pas se qui est saisie au clavier mais c'est bel et bien saisie
    En effet,
    j'ai tapé mon mot de passe et j'ai eu:
    Attempting to start blablabla as user "blablabla" ...

    Cependant j'ai 2 autres questions

    - Est-il possible d'afficher * pour chaque touche tapé à l'écran ?
    en effet j'ai un mot de passe à 6 lettres et j'aimerais avoir la possibilité de compter le nombre de touche tappé.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 18
    Points : 23
    Points
    23
    Par défaut
    Bonsoir.

    J'ai remanié le script donné précédemment, cependant j'ai quelques problèmes.
    1. Quand je clique droit "Run as Admin" tout fonctionne, idem si je double clique et que je tapes un mot de passe CORRECT
    2. Quand je met un mauvais mot de passe, le script m'envoie quand même sur goto:menuLOOT

    Pouvez vous m'aider s'il vous plait pour envoyer l'utilisateur sur goto:password (Taper le mot de passe) au lieu de l'envoyer sur goto:menuLOOT ?
    En effet, chose logique, si mauvais mot de passe, pas d'accès.

    C'est au niveau de :password qui pose problème j'ai l'impression...

    Merci beaucoup!



    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    @Echo off & cls
    Mode con cols=75 lines=15
     
    :detect
    Set detecting=Administrative permissions required. Detecting permissions..
    echo %detecting%
        net session >nul 2>&1
        if %errorLevel% == 0 (
            echo Success: Administrative permissions confirmed for %COMPUTERNAME%\%UserName% 
    		pause>nul
    		goto:menuLOOP
        ) else (
            echo Failure: Current permissions inadequate.
    		pause>nul
    		goto password
        )
     
    :password
    if not "%UserName%"=="Administrator" (
    	runas /user:%COMPUTERNAME%\%UserName% %0 %*
    	1>nul timeout /t 3 /nobreak
    ) else (
    	goto EOF
    )
     
    :EOF
    EXIT /B

  11. #11
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Points : 738
    Points
    738
    Billets dans le blog
    2
    Par défaut
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    @Echo off & cls
    Mode con cols=75 lines=15
     
    :detect
    Set detecting=Administrative permissions required. Detecting permissions..
    echo %detecting%
        net session >nul 2>&1
        if %errorLevel% == 0 (
            echo Success: Administrative permissions confirmed for %COMPUTERNAME%\%UserName% 
    		pause>nul
    		goto:menuLOOP
        ) else (
            echo Failure: Current permissions inadequate.
    		pause>nul
    		goto password
        )
     
    :password
    if not "%UserName%"=="Administrator" (
      (
        runas /user:Administrator %0 %*
      ) || (
        goto retpwd
      )
      1>nul timeout /t 3 /nobreak
    ) else (
    	goto EOF
    )
     
    :EOF
    EXIT /B

Discussions similaires

  1. [Lazarus] Comment détecter si le programme est lancé avec l'IDE ?
    Par Invité dans le forum Lazarus
    Réponses: 0
    Dernier message: 05/07/2010, 17h30
  2. Réponses: 7
    Dernier message: 28/04/2009, 16h05
  3. Tester si le shell script est lance en background ou pas ?
    Par mhtrinh dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 20/02/2008, 10h14
  4. Détecter si une appli est lancée par Delphi
    Par giloutho dans le forum Delphi
    Réponses: 2
    Dernier message: 18/07/2006, 16h42
  5. [D7/CLX] Détecter si l'application est déjà lancée
    Par cedricgirard dans le forum EDI
    Réponses: 2
    Dernier message: 23/02/2006, 18h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo