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).
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
Démarrer -> shift + commande Invite clic droit aidera à utiliser comme un autre utilisateur ou comme administrateur
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:
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?
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
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
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.
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/
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"
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.