web-dev-qa-db-fra.com

Comment exécuter une application en tant que "exécuter en tant qu'administrateur" à partir de l'invite de commande?

J'ai un fichier de commandes appelé test.bat. J'appelle les instructions ci-dessous dans le fichier test.bat:

start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1

Lorsque j'exécute cette commande à l'aide de l'invite de commande, mon script de test s'exécute correctement. Je souhaite l'exécuter en tant qu'administrateur (comme si j'avais créé un raccourci sur le bureau et exécuté en tant qu'administrateur. Il ne devrait pas demander de nom d'utilisateur ni de mot de passe).

J'ai essayé d'ajouter /elevate et /NOUAC paramètres ci-dessus test.bat, mais pas de chance. Comment puis-je résoudre ce problème?

Je sais comment le faire manuellement, mais je veux que cela soit exécuté à partir de la commande Invite.

(Par Marnix Klooster ): ... sans utiliser aucun outil supplémentaire, comme ceux suggérés dans ne réponse à la question du super utilisateur Comment exécuter le programme à partir de ligne de commande avec droits élevés .)

120
Praveen Jakkaraju

Essaye ça:

runas.exe /savecred /user:administrator "%sysdrive%\testScripts\testscript1.ps1" 

Il enregistre le mot de passe la première fois et ne demande jamais plus. Peut-être que lorsque vous modifiez le mot de passe de l'administrateur, vous serez invité à nouveau.

83
Dhana

Voir ceci TechNet article: documentation sur la commande Runas

A partir d'une invite de commande:

C:\> runas /user:<localmachinename>\administrator cmd

Ou, si vous êtes connecté à un domaine:

C:\> runas /user:<DomainName>\<AdministratorAccountName> cmd
22
John Ruiz

Il semble que psexec -h soit le moyen de procéder:

 -h         If the target system is Windows Vista or higher, has the process
            run with the account's elevated token, if available.

Ce qui ... ne semble pas figurer dans la documentation en ligne dans Sysinternals - PsExec.

Mais cela fonctionne sur ma machine.

6
Ben Curthoys