J'ai un fichier batch appelé test.bat
. J'appelle les instructions ci-dessous dans le fichier test.bat
:
start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1
Lorsque je lance cette instruction à l'invite de commande, mon testcript s'exécute avec succès. Je veux l'exécuter en tant qu'administrateur (comme si j'avais créé un raccourci sur le bureau et exécuté en tant qu'administrateur. Aucun nom d'utilisateur ou mot de passe ne devrait être demandé).
J'ai essayé d'ajouter les paramètres /elevate
et /NOUAC
dans le test.bat
ci-dessus, mais sans succès. Comment puis-je résoudre ce problème ?
Je sais comment le faire manuellement, mais je veux que cela soit exécuté à partir de l'invite de commande.
(Par Marnix Klooster) : ...sans utiliser d'outils supplémentaires, comme ceux suggérés dans une réponse à la question Super Utilisateur Comment exécuter un programme à partir de la ligne de commande avec des droits élevés.)
Essayez ça :
runas.exe /savecred /user:administrator "%sysdrive%\testScripts\testscript1.ps1"
Il enregistre le mot de passe la première fois et ne le demande plus. Peut-être que lorsque vous changerez le mot de passe de l'administrateur, vous serez à nouveau invité à le faire.
Voir cet article [TechNet][1] : [Documentation sur la commande Runas][2]
À 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
[1] : https://en.wikipedia.org/wiki/Microsoft_TechNet [2] : http://technet.microsoft.com/en-us/library/cc771525%28WS.10%29.aspx
Il semble que psexec -h
soit le moyen de le faire :
-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 être listé dans la documentation en ligne de [Sysinternals - PsExec][1].
Mais cela fonctionne sur ma machine.
[1] : http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx