J'essaie d'écrire un fichier de commandes qui doit exécuter certaines commandes à l'aide d'un compte d'administrateur local (démarrer / arrêter un service) et certaines commandes à l'aide de l'utilisateur connecté (copier les fichiers du répertoire utilisateur) et je rencontre des problèmes. J'ai essayé les commandes suivantes:
runas avec / savecred
runas /user:(PC name)\(admin username) /savecred "net stop \"(service name)\""
runas /user:(PC name)\(admin username) /savecred "sc stop \"(service name)\""
Lors de l'utilisation, /savecred
je ne suis pas invité à entrer un mot de passe. Au lieu de cela, une fenêtre d'invite de commande clignote brièvement et disparaît. Je ne peux pas dire ce qui est dans cette fenêtre. Le service n'est pas arrêté.
runas sans / sauvegardé
runas /user:(PC name)\(admin username) "net stop \"(service name)\""
runas /user:(PC name)\(admin username) "sc stop \"(service name)\""
Ces commandes m'invitent à saisir un mot de passe, mais présentent le même comportement que les commandes ci-dessus - une fenêtre d'invite de commande apparaît brièvement et le service n'est pas arrêté.
Idéalement, je voudrais enregistrer le mot de passe pour la session car je devrai exécuter plus de commandes avec les détails.
Est-ce possible et si oui, que fais-je de mal?
la source
runas /user:(PC name)\(username) /savecred "net stop \"(service name)\"" >> log.txt
rien n'est sorti dans le fichier journal.LOGBATCH.BAT yourbatch.bat any_parameters_your_batch_needs
il créera un fichier journal contenant toutes les commandes / actions effectuées paryourbatch.bat
Faites-nous savoir ce que vous y voyez.Réponses:
Vous pouvez ajouter ce qui suit à votre script et cela le forcera à s'exécuter en mode élevé. Pas besoin de télécharger quoi que ce soit.
la source
Requesting administrative privileges...
à l'écran jusqu'à ce qu'il expire.divisez votre fichier batch en deux. La partie que vous souhaitez exécuter en tant que collage admincmd sur system32. La partie que vous souhaitez exécuter en cmd normal le colle dans le dossier normal, et à partir d'ici, appelez le deuxième fichier de commandes, qui est le système32. De cette façon, la deuxième partie s'exécute toujours en admincmd. Je l'ai essayé et ça marche pour moi.
la source
Si cela ne vous dérange pas les logiciels tiers, vous pouvez essayer d' exécuter en tant que mot de passe runasspc. Il enregistrera votre mot de passe dans un fichier crypté. Le mot de passe n'a pas besoin d'être exposé dans le fichier de commandes.
la source
La commande "Runas" ne fera pas "sudo" votre commande.
Pour ce faire à partir d'un fichier batch, vous devez "élever" les commandes que vous générez. Téléchargez les scripts Elevate Powertoy.
http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
Lancez vos commandes en tant que:
ou
la source
runas /user:$PcName\$Username /savecred "elevate.cmd sc stop \"$ServiceName\""
,runas /user:$PcName\$Username /savecred "elevate.cmd net stop \"$ServiceName\""
,runas /user:$PcName\$Username /savecred "elevate.cmd net stop $ServiceName"
et chacun d'eux renvoie cette erreur: erreur RUNAS: Impossible d'exécuter - net stop elevate.cmd alfrescoTomcat -2147467259: Erreur non spécifiéeCe que j'utilise est le code suivant:
Mettez-le après votre @echo et vos remarques.
la source
Réponse simplifiée (en plus de user325534) si vous avez seulement besoin de commencer à travailler dans un répertoire avec un accès amélioré:
la source
Ce code permet au cmd de demander le mot de passe utilisateur. L'utilisateur doit saisir son mot de passe, puis le
executable.bat
sera exécuté en tant qu'administrateurmain.bat
executable.bat
la source