web-dev-qa-db-fra.com

Comment exécuter un programme à partir de la commande Invite en tant qu'utilisateur différent et en tant qu'administrateur

J'utilise "runas" pour ouvrir l'invite de commande en tant qu'utilisateur différent, mais l'invite de commande ne s'exécute pas En tant qu'administrateur. Comment puis-je le faire fonctionner en tant qu'administrateur?

UPDATE: J'utilise Windows Server 2012

UPDATE: J'ai ouvert cmd pour un autre compte en exécutant

 runas /user:domain\username cmd.exe

Ensuite, j'ai essayé d'exécuter certaines commandes dans cette nouvelle invite, mais cela ne s'exécutait pas en tant qu'utilisateur élevé (même s'il dispose des privilèges d'administrateur). 

47
Mark

Voir ici: https://superuser.com/questions/42537/is-there-any-Sudo-command-for-windows

Selon cela, la commande ressemble à ceci pour admin:

 runas /noprofile /user:Administrator cmd
51
Herms

Démarrer -> shift + commande Invite clic droit aidera à utiliser comme un autre utilisateur ou comme administrateur

14
Sun_Sparxz

Toutes ces réponses manquent malheureusement l’essentiel.

Il y a 2 nuances de contexte de sécurité ici, et nous avons besoin qu'elles se chevauchent .- "Exécuter en tant qu'administrateur" - change votre niveau d'exécution sur votre machine locale - "Exécuter sous un autre utilisateur" - sélectionne les informations d'identification de l'utilisateur que vous exécutez le processus sous.

Lorsque le contrôle de compte d'utilisateur est activé sur un poste de travail, certains processus refusent de s'exécuter sauf s'ils sont élevés - le simple fait d'être membre du groupe local "Administrateurs" ne suffit pas. Si votre exigence exige également que vous utilisiez d'autres informations d'identification que celles avec lesquelles vous êtes connecté, nous avons besoin d'une méthode pour appeler le processus à la fois en tant qu'autre information d'identification ET élevée.

Ce que j'ai trouvé peut être utilisé, bien qu'un peu embêtant, c'est:

  • lancer une invite CMD en tant qu'administrateur
  • utilisez l'utilitaire Sysinternals psexec comme suit:

    psexec \\ poste de travail local -h -i -u domaine\autre utilisateur exetorun.exe

La première élévation est nécessaire pour pouvoir activer le service psexec. -H exécute le nouveau processus "distant" (local) élevé, et -i lui permet d'interagir avec le bureau.

Peut-être existe-t-il des moyens plus faciles que cela?

14
Kevin

J'ai trouvé un moyen de faire cela avec une seule ligne:

runas /user:DOMAIN\USER2 /savecred "powershell -c start-process -FilePath \"'C:\\PATH\\TO\\YOUR\\EXECUTABLE.EXE'\" -verb runAs"

Il y a quelques astuces ici. 

1: Nous demandons à CMD de lancer Powershell sous DOMAIN\USER2.

2: nous passons la commande "Start-Process" à Powershell, en utilisant le verbe "runAs" pour élever DOMAIN\USER2 en mode de privilège Administrateur/Elevé. 

En règle générale, les caractères d'échappement de l'argument "FilePath" doivent être présents (en d'autres termes, les combinaisons de caractères "\ & \\), et la citation simple (') doit entoure le Chemin EXE: de cette manière, CMD interprète le chemin FilePath comme une chaîne unique, puis Powershell utilise la citation simple pour interpréter le chemin FilePath comme un seul argument.

Utilisation du verbe "RunAs" pour élever au sein de Powershell: http://ss64.com/ps/syntax-elevate.html

5
Coruscate5

Vous pouvez utiliser psexec.exe depuis Microsoft Sysinternals Suite https://docs.Microsoft.com/en-us/sysinternals/downloads/sysinternals-suite

Exemple:

c:\somedir\psexec.exe -u domain\user -p password cmd.exe
1
Paweł M.

Runas n'exécute pas par magie de commandes en tant qu'administrateur, il les exécute sous le compte pour lequel vous fournissez des informations d'identification. Si ce n'est pas un compte administrateur, runas s'en fiche.

1
Wug

Je vous fournis les étapes qui ont fonctionné via l'interface graphique

Veuillez rechercher "cmd" dans le menu de démarrage ou la barre de recherche et ouvrir l’emplacement du fichier en cliquant dessus avec le bouton droit de la souris.

Ensuite, essayez de maintenir la touche Maj enfoncée et de cliquer avec le bouton droit de la souris sur l'application/le programme ou le raccourci que vous souhaitez ouvrir via un autre identifiant

Veuillez consulter l'article ci-dessous pour plus d'informations http://www.windowscage.com/how-to-run-application-as-different-user-in-windows/

0

Dans mon cas, j'étais déjà connecté en tant qu'administrateur local et je devais exécuter CMD en tant qu'administrateur de domaine. Ce qui a donc fonctionné pour moi a été d'exécuter le sous à partir d'une fenêtre Powershell :

runas/noprofile/user: DOMAIN\USER "cmd"

0
Ajay Raw

Ouvrez le bloc-notes et collez ce code:

@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c %*'"
@echo on

Enregistrez ensuite le fichier sous le nom Sudo.cmd. Copiez ce fichier et collez-le à C:\Windows\System32 ou ajoutez le chemin où Sudo.cmd est à votre variable d'environnement PATH.

Lorsque vous ouvrez l'invite de commande, vous pouvez maintenant exécuter quelque chose comme Sudo start ..

Si vous voulez que la fenêtre du terminal reste ouverte lorsque vous exécutez la commande, modifiez le code dans le bloc-notes comme suit:

@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k %*'"
@echo on

Explication:

powershell -Command exécute une commande powershell.

Start-Process est une commande Powershell qui démarre un processus, dans ce cas, la commande Invite.

-Verb RunAs exécute la commande en tant qu'administrateur.

-Argument-List exécute la commande avec des arguments.

Nos arguments sont '/c %*'. %* signifie tous les arguments, donc si vous utilisiez Sudo foo bar, il serait exécuté dans la commande Invite foo bar car les paramètres sont foo and bar, et %* renvoie foo bar.

/c est un paramètre cmd permettant de fermer la fenêtre une fois la commande terminée et /k est un paramètre cmd permettant de garder la fenêtre ouverte.

0
CME1 Crewmember