Partage
  • Partager sur Facebook
  • Partager sur Twitter

"Exécuter en tant qu'admin" en ligne de commande

    1 octobre 2011 à 19:56:51

    Bonsoir,

    Je suis en train de créer un petit batch qui permet de désactiver plusieurs tâches. Le problème, c'est qu'il faut ouvrir le batch "en tant qu'administrateur" afin qu'il s'exécute correctement. Mais moi, feignant, je voudrais savoir s'il est possible d'utiliser une ligne de commande pour cette action "clic droit, exécuter en tant qu'administrateur"...
    J'ai vu quelque chose du genre "runas /noprofile /user:Administrateur", mais ça ne me convient pas car je n'ai pas de session Administrateur, donc pas de mot de passe à entrer quand on me le demande...

    Merci de votre aide...
    • Partager sur Facebook
    • Partager sur Twitter
      1 octobre 2011 à 21:38:51

      Bonjour, si la commande runas ne te conviens pas, je dirais non.
      • Partager sur Facebook
      • Partager sur Twitter
        1 octobre 2011 à 22:28:34

        Tu peux faire un raccourci vers ton batch, puis dans les propriétés du raccourci, onglet raccourci | avancé | exécuter en tant qu'admin...)?
        • Partager sur Facebook
        • Partager sur Twitter
        ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
          1 octobre 2011 à 23:42:06

          Mon but final est en fait d'utiliser mes batchs (qui nécessitent souvent une exécution en tant qu'administrateur) sur d'autres machines, du coup je ne peux pas utiliser la commande "runas", à ma connaissance. Avec cette ligne là ("runas /noprofile /user:Administrateur") je dois mettre un mot de passe, mais lequel ?!
          C'est tellement simple de faire "clic droit, exécuter en tant qu'administrateur", dommage qu'il n'y ait pas l'équilavent en une petite instruction en ligne de commande...
          • Partager sur Facebook
          • Partager sur Twitter
            2 octobre 2011 à 8:21:12

            L'équivalent est la commande runas, tout simplement. Tu imagines si en tapant cette ligne, tu aurais automatiquement les droits d'admin ? Ce serait une faille de sécurité énorme. Tu dois donc spécifier le mot de passe, tout comme tu dois spécifier le mot de passe lorsque tu fais clic droit => exécuter en tant qu'admin.

            Mais si tu fais clic droit sur ton batch => propritétés => compatibilité, et que tu coche la case "exécuter ce programme en temps qu'admin", il le fera normalement automatiquement lorsque tu double-cliqueras sur le programme, je pense que c'est ce que breizhbugs voulait te dire ... et ceci même si tu l'envoies sur d'autre PC.
            • Partager sur Facebook
            • Partager sur Twitter
              2 octobre 2011 à 9:39:01

              D'accord, cette solution me convient. Cela dit, on ne me demande aucun mot de passe après le "clic droit, exécuter en tant qu'administrateur", donc la faille de sécurité est présente, non ?

              J'ai une question subsidiaire : imaginons que j'utilise la fonction "runas". Etant donné que je n'ai pas de session nommée "Administrateur", et que je suis le seul a utiliser ce pc, que dois-je alors saisir comme mot de passe ?

              Et dernière chose : l'option est grisée :(
              Image utilisateur
              • Partager sur Facebook
              • Partager sur Twitter
                2 octobre 2011 à 11:35:21

                Houlà ... là aucune idées, chez moi je peux la cocher.
                • Partager sur Facebook
                • Partager sur Twitter
                  2 octobre 2011 à 11:40:07

                  Citation : Agent J


                  Et dernière chose : l'option est grisée :(
                  Image utilisateur


                  C'est justement parce que l'option sur le bat est grisée qu'il faut que tu fasse un raccourci sur ce bat. Relis bien mon post!
                  • Partager sur Facebook
                  • Partager sur Twitter
                  ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                    2 octobre 2011 à 12:25:29

                    D'accord, en effet ça fonctionne avec la technique du raccourci. Mais... C'est chiant ! :euh: Faire un raccourci pour chaque .bat, c'est fastidieux...
                    Pourquoi cette option est-elle grisée chez moi et pas chez Tufanik ? N'y aurait-il pas un moyen de s'octroyer une bonne fois pour toutes les droits administrateur ?

                    Merci pour votre aide en tout cas...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 octobre 2011 à 14:32:31

                      Elle est grisée chez moi aussi et chez tout le monde, tufanik y compris je pense...
                      • Partager sur Facebook
                      • Partager sur Twitter
                      ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                        2 octobre 2011 à 15:07:58

                        Je reviens à une question que j'ai posée précédemment :

                        Imaginons que j'utilise la fonction "runas". Etant donné que je n'ai pas de session nommée "Administrateur", et que je suis le seul a utiliser ce pc, que dois-je alors saisir comme mot de passe ?





                        EDIT : Après quelques recherches, j'ai trouvé deux scripts qui permettent de vérifier le statut. S'il est autre qu'administrateur, tout est fini.

                        1er script :
                        mkdir "%windir%\system32\test" 2>nul
                        if "%errorlevel%" == "0" (rmdir "%windir%\system32\test" & echo Vous etes bien administrateur)
                        else (echo Vous n'etes pas administrateur. Veuillez faire un clic droit sur le fichier et selectionner "executer en tant qu'administrateur" & pause & exit)


                        2nd script :
                        for /f "tokens=3" %%V in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18" /v ProfileImagePath ^| find "ProfileImagePath"') do set FOLDER=%%V
                        dir %FOLDER% 2>&1 | findstr /I /C:"Not Found"
                        If %ERRORLEVEL% NEQ 0 SET CSI_ISADMIN=1
                        
                        echo.
                        IF "%CSI_ISADMIN%" == "1" ECHO Vous etes bien administrateur
                        IF NOT "%CSI_ISADMIN%" == "1" ECHO Vous n'etes pas administrateur. Veuillez faire un clic droit sur le fichier et selectionner "executer en tant qu'administrateur" & pause & exit


                        Pourriez-vous me donner vos avis à propos de ces deux scripts ? Honnêtement, je ne suis pas en mesure de savoir ce qu'ils font concrètement... (débutant ! :p )
                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 octobre 2011 à 16:46:03

                          Un simple 'net user %username%' te renseignes si ton compte appartient au groupe "administrateurs" (dans "appartient au groupe locaux")...
                          • Partager sur Facebook
                          • Partager sur Twitter
                          ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                            2 octobre 2011 à 16:55:15

                            Citation : breizhbugs

                            Elle est grisée chez moi aussi et chez tout le monde, tuffanik y compris je pense...



                            Ah oui, autant pour moi, j'avais essayé sur un raccourci.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              23 octobre 2012 à 10:09:44

                              Bonjour,

                              J'ai trouvé la solution !
                              Il faut faire un raccourci du batch ou du programme que tu souhaites lancer.
                              (clic droit, envoyer vers, bureau (créer un raccourci)

                              Et à ce raccourci que tu va demander à ce qu'il soit exécutable avec des privilèges d'Administrateur :

                              • - Clic droit sur le Raccourci, propriété.
                              • - Onglet Raccourci
                              • - Bouton Avancé...
                              • - Cocher Exécuter en temps qu'administrateur

                              Elevation de privilèges

                              Il n'y aura pas de faille de sécurité car il te demandera bien de confirmer.
                              Ce raccourci et ton programme peuvent être copiés ; ces propriétés spéciales sont conservées (du moins de ce qu j'ai pu tester)

                              En espérant que ça vous aille.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                3 août 2013 à 0:11:47

                                merci aideai974 !!!

                                vraiment merci parce que j'etais completement passé à coté !

                                -
                                Edité par bugmepa 3 août 2013 à 0:12:34

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  13 mars 2014 à 7:44:08

                                  Bonjour! En passant j'ai vus la discussion. Si c'est pas encore resolu le pb, vous pouvez peut-etre  convertir le batch en .exe, dans le convertisseur il y a un choix (demarrer en tant qu'admin ou non) donc  faite votre choix. En tout cas, faut avoir l'application pour se faire! bonne chance a tous

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    4 juillet 2014 à 19:02:22

                                    Merci à tous pour votre aide précieuse !
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      10 janvier 2017 à 13:20:34

                                      @echo off
                                      title Test Admin
                                      mode con: cols=90 lines=30
                                      Color 0F
                                      cls
                                      :lunch
                                              attrib %windir%\system32 -h | findstr /I "system32" >nul
                                              IF %errorlevel% neq 1 (
                                                      echo.
                                                      echo Ce script doit etre lance en Administrateur.
                                                      echo.
                                                      pause
                                                      exit
                                              )
                                      echo ON EST EN ADMIN, PLACER LA SUITE DU SCRIPT ICI!
                                      pause
                                      exit
                                      merci de clore le sujait si résolu!!!
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        30 mars 2017 à 15:18:51

                                        Bonjour,

                                        Je cherche à lancer un fichier batch pour synchroniser le temps. Meme avec le batch ci-dessus (Balesmesaule), ça ne marche pas.

                                        Je cherche juste à exécuter "net time \\<server> /set /y" par un planificateur de tâche. Le système me retourne "erreur 1314".

                                        J'ai déjà essayé le raccourci avec droit admin, etc.. je suis à sec là.

                                        Quelqu'un aurait une idée svp ?

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          15 juin 2017 à 13:09:09

                                          Bonjour,

                                          Pareil, je dois lancer un fichier batch en tant qu'administrateur sur un lecteur réseau qui est connecté depuis ma session avec mes credentials.

                                          Seulement l'invite de commande en tant qu'administrateur n'a pas les credentials de ma session de ma base (session %user% qui a appartient au groupe administrateur, donc qui est admin en soit), n'a pas accès aux lecteurs réseaux !

                                          Si je fais mon NET USE H: 192.168.1.200 /user:%user%, le compte administrateur a enfin accès au H: sauf que le but est d'exécuter un batch au démarrage de toutes les machines qui se trouve sur le lecteur réseau H: .

                                          Résultat, impossible de lancer mon batch en administrateur depuis mon lecteur réseau (tout se passe bien si je le lance en normal, mais mon batch lance un .exe qui a besoin des droits administrateurs pour faire ses changements).

                                          Mon supérieur me dit de chercher du côté de Windows, pour faire de tel sorte que le compte normal ait directement tous les droits.

                                          En gros, pour moi qui côtoie souvent Linux, j'ai l'impression que quand on fait un clique droit "exécuter en tant qu'administrateur", Windows fait un SUDO et ne demande pas le mot de passe du compte administrateur vu que mon compte appartient aux administrateurs.

                                          Et mon supérieur voudrait éviter de faire ce SUDO tout le temps, en faisant un SU - . Ce qui en soit serait génial, mais je sens que Bill Gates n'est pas d'accord... Et mon supérieur à l'air déterminer pour croire en cette solution.

                                          Avez-vous déjà vu ça sous Windows 10 ou même sous des versions antérieures ?

                                          Est-ce possible selon vous ?

                                          Avez-vous une solution au premier problème, comme ça on a pas besoin du second et tout est résolu ! :D

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            27 juin 2017 à 16:07:43

                                            J'ai trouvé une réponse en désactivant UAC qui contraint à valider à chaque fois "en tant qu'administrateur".

                                            Il faut modifier cette option dans la base de registre :

                                            https://msdn.microsoft.com/en-us/library/cc232765.aspx

                                            Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

                                            Value: "EnableLUA"

                                            Type: REG_DWORD

                                            Data: This MUST be a value in the following table.

                                            Value

                                            Meaning

                                            0x00000000

                                            Disabling this policy disables the "administrator in Admin Approval Mode" user type.

                                            0x00000001

                                            This policy enables the "administrator in Admin Approval Mode" user type while also enabling all other User Account Control (UAC) policies.

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              23 septembre 2017 à 10:39:55

                                              hey voila la commande 
                                              :: On execute les commandes en administateur 
                                              :-------------------------------------
                                              REM  -->  Verification des permissions
                                              >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
                                              REM --> Erreur vous ne possedez pas les droits admin
                                              if '%errorlevel%' NEQ '0' (
                                                  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"
                                                  exit /B
                                              :gotAdmin
                                                  if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
                                                  pushd "%CD%"
                                                  CD /D "%~dp0"
                                              :-------------------------------------
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                25 mars 2019 à 11:39:41

                                                Erzékiel a écrit:

                                                1er script :

                                                mkdir "%windir%\system32\test" 2>nul
                                                if "%errorlevel%" == "0" (rmdir "%windir%\system32\test" & echo Vous etes bien administrateur)
                                                else (echo Vous n'etes pas administrateur. Veuillez faire un clic droit sur le fichier et selectionner "executer en tant qu'administrateur" & pause & exit)



                                                2nd script :

                                                for /f "tokens=3" %%V in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18" /v ProfileImagePath ^| find "ProfileImagePath"') do set FOLDER=%%V
                                                dir %FOLDER% 2>&1 | findstr /I /C:"Not Found"
                                                If %ERRORLEVEL% NEQ 0 SET CSI_ISADMIN=1
                                                
                                                echo.
                                                IF "%CSI_ISADMIN%" == "1" ECHO Vous etes bien administrateur
                                                IF NOT "%CSI_ISADMIN%" == "1" ECHO Vous n'etes pas administrateur. Veuillez faire un clic droit sur le fichier et selectionner "executer en tant qu'administrateur" & pause & exit

                                                Le 1er script (essaie de) crée(r) un répertoire dans un dossier autorisé seulement aux administrateurs ; si ça a marché, il le détruit puis indique que tout est ok.

                                                Le 2nd script lit la base de registre à la recherche du dossier d'image de profil correspondant au SID S-1-5-18 (le compte local), et enregistre un booléen indiquant si le dossier a été effectivement trouvé (pour le dernier résultat de la boucle for). Le script mériterait d'utiliser un IF / ELSE au-lieu de tester 2x la condition, une fois positivement puis une fois négativement.

                                                Comme dit en réponse par breizhbugs, la commande "net user" suffit :

                                                C:\Users\AbcXyz>net user
                                                
                                                comptes d’utilisateurs de \\ZyxCba
                                                
                                                -------------------------------------------------------------------------------
                                                Administrateur           DefaultAccount           Invité
                                                La commande s’est terminée correctement.
                                                
                                                
                                                C:\Users\AbcXyz>net user Administrateur | find "Appartient aux groupes locaux" | find "Administrateurs"
                                                Appartient aux groupes locaux                  *Administrateurs


                                                Chaque "| find "Bla" " restreint le champ de recherche : le premier ne conserve que la ligne "Appartient aux groupes locaux", et la suivante s'assure que le mot "Administrateurs" y figure. Mais aucune de ces 3 commandes ne permet de lancer un script en administrateur.

                                                BalesmeSaule a écrit:

                                                @echo off
                                                title Test Admin
                                                mode con: cols=90 lines=30
                                                Color 0F
                                                cls
                                                :lunch
                                                        attrib %windir%\system32 -h | findstr /I "system32" >nul
                                                        IF %errorlevel% neq 1 (
                                                                echo.
                                                                echo Ce script doit etre lance en Administrateur.
                                                                echo.
                                                                pause
                                                                exit
                                                        )
                                                echo ON EST EN ADMIN, PLACER LA SUITE DU SCRIPT ICI!
                                                pause
                                                exit
                                                merci de clore le sujait si résolu!!!

                                                Ce script change le titre, la couleur et la taille de la fenêtre de commande, en efface le contenu, puis tente de masquer un répertoire système pour voir si les droits d'administration sont disponibles. À éviter, puisqu'il ne permet pas non-plus de déclencher les droits d'administration.

                                                SladinjiLabyala a écrit:

                                                Bonjour,

                                                NET USE H: 192.168.1.200 /user:%user%, le compte administrateur a enfin accès au H: sauf que le but est d'exécuter un batch au démarrage de toutes les machines qui se trouve sur le lecteur réseau H: .

                                                Résultat, impossible de lancer mon batch en administrateur depuis mon lecteur réseau (tout se passe bien si je le lance en normal, mais mon batch lance un .exe qui a besoin des droits administrateurs pour faire ses changements).

                                                Mon supérieur me dit de chercher du côté de Windows, pour faire de tel sorte que le compte normal ait directement tous les droits.

                                                Pour garantir les droits à un utilisateur, il existe la commande ICACLS, assez simple à utiliser une fois bien comprise (icacls "C:\MyFolder" /grant Users:F, c.f ici), mais attention : un répertoire local "H:", même s'il fait référence à une ressource réseau, n'aura un changement que de droits locaux ; si vous interdisez la lecture à "Invité" sur le dossier "H:" de "MonPC", il n'y a que "Invité" de "MonPC" qui sera impacté. Certains groupes d'utilisateurs peuvent être affectés à partir des droits locaux, notamment "Utilisateurs du domaine" par exemple, mais encore une fois ce ne sera que lors de l'accès à "H:" de "MonPC", pas de la ressource "\\Serveur01\Dossier\Ciblé\Par\H" !

                                                1) Pour autoriser l'administrateur à accéder à une ressource réseau, le plus simple est d'autoriser l'accès à cette ressource directement depuis le serveur concerné via ICACLS.

                                                2) Pour qu'un script s'exécute à l'ouverture de session avec des droits spéciaux, le mieux reste de lui dire de s'exécuter "en tant que…", c-à-d via RUNAS.

                                                3) Bill Gates n'a probablement rien contre un SU- dans Windows, il suffit de deux petites choses pour le convaincre : de l'argent (beaucoup), et de la motivation (encore plus). Ces deux petites choses devront être d'autant plus fortes si le système d'exploitation contient déjà une commande équivalente.

                                                MathieuCampani a écrit:

                                                hey voila la commande 
                                                :: On execute les commandes en administateur 
                                                :-------------------------------------
                                                REM  -->  Verification des permissions
                                                >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
                                                REM --> Erreur vous ne possedez pas les droits admin
                                                if '%errorlevel%' NEQ '0' (
                                                    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"
                                                    exit /B
                                                :gotAdmin
                                                    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
                                                    pushd "%CD%"
                                                    CD /D "%~dp0"
                                                :-------------------------------------

                                                Ce script lance une commande d'administration (CACLS, dépréciée depuis Vista !), déclenchant un ERRORLEVEL à 5. Il crée alors un script VBs temporaire créant une simple application virtuelle, pour exécuter un simple RUNAS en tant qu'administrateur sur le batch englobant. Le script est alors lancé, puis le batch courant est terminé. Le script lançant le batch courant en tant qu'admin, il a maintenant les droits d'administration, et le script lançant est détruit. Cela permet effectivement de lancer un script en tant qu'administrateur, mais autant effectuer directement un "RUNAS %~dp0", c'est quand-même moins tordu.

                                                Petit mot de la fin : ne désactivez pas l'UAC juste "car elle gêne", ça revient à laisser les droits d'administration à tous les programmes. Et c'est justement pour éviter ça qu'elle a été mise en place. (Oui, je féminise la fonction de contrôle d'accès aux utilisateurs, et alors ? :p ) Bref, des bisous : ne faites pas n'importe-quoi, la seule réponse valable reste celle de aideai974.

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Anonyme
                                                  7 juillet 2019 à 11:45:35

                                                  0

                                                  -
                                                  Edité par Anonyme 31 octobre 2023 à 14:42:53

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  "Exécuter en tant qu'admin" en ligne de commande

                                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                  • Editeur
                                                  • Markdown