Détails
Comment créer un fichier batch pour exécuter cmd en tant qu'administrateur ?
Je dois exécuter un fichier batch qui doit enregistrer une DLL. L'enregistrement de la DLL échoue parce que le fichier batch ne démarre pas l'invite de commande en tant qu'"administrateur".
Existe-t-il un moyen de lancer l'invite de commande en tant qu'administrateur par le biais du fichier batch ?
Environnement : Win7/Vista
31
3
Vous devrez peut-être utiliser d'abord un autre fichier batch pour lancer le second avec des droits d'administrateur.
Dans le premier, utilisez
Après lecture, vous devez être capable de taper le mot de passe à l'invite. Vous ne pouvez pas taper le mot de passe car cette fonction a été verrouillée pour des raisons de sécurité.
Vous aurez peut-être plus de chance avec [psexec][1].
[1] : http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
(Ceci est basé sur la réponse de @DarkXphenomenon's, qui présentait malheureusement quelques problèmes).
Vous devez enfermer votre code dans ce wrapper:
Cela permet au fichier batch de s'exécuter en tant qu'utilisateur élevé. Il ajoute deux paramètres au code privilégié:
le mot
payload
, pour indiquer qu'il s'agit d'un appel payload, c'est à dire déjà élevé. Sinon Sinon, il ne ferait qu'ouvrir de nouveaux processus encore et encore.Le chemin du répertoire où le script principal a été appelé. En raison du fait que Windows lance toujours toujours, Windows démarre un cmd.exe élevé dans "%windir%\system32" ;, il n’y a pas de moyen facile de connaître le chemin le chemin d'origine (et de conserver la possibilité de copier votre script sans toucher au code). sans toucher au code)
Note: Malheureusement, pour une raison quelconque,
shift
ne fonctionne pas pour%*
, donc si vous devez si vous devez passer des arguments réels, vous devrez utiliser la notation laide que j'ai utilisée dans l'exemple (%1 %2 %3 %4 %5 %6 %7 %8 %9
), qui apporte également la limite de maximum de 9 argumentsVous pouvez utiliser un raccourci qui renvoie au fichier batch. Il suffit d'aller dans les propriétés du raccourci et de sélectionner avancé, puis "exécuter en tant qu'administrateur" ;.
Ensuite, il suffit de masquer le fichier batch et d'exécuter le raccourci.
De cette façon, vous pouvez même définir votre propre icône pour le raccourci.