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 .)
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.
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
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.