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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 18
    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 chevronné

    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
    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
    Le gourou dicte la ligne (de commande) à suivre ...

    Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
    ainsi que le Cour sur la ligne de commande et des scripts

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 18
    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 chevronné

    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
    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.
    Le gourou dicte la ligne (de commande) à suivre ...

    Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
    ainsi que le Cour sur la ligne de commande et des scripts

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 18
    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 chevronné

    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
    Billets dans le blog
    2
    Par défaut
    Ca dépend de ta config mais apriori non
    Le gourou dicte la ligne (de commande) à suivre ...

    Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
    ainsi que le Cour sur la ligne de commande et des scripts

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