Insérer mot de passe dans un script
Fermébrucine Messages postés 18272 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 décembre 2024 - 17 août 2022 à 21:57
- Insérer mot de passe dans un script
- Voir mot de passe wifi android - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Trousseau mot de passe iphone - Guide
- Identifiant et mot de passe - Guide
10 réponses
20 juin 2022 à 08:29
Ce n'est pas possible dans le script lui-même, puisque c'est l'ouverture de ce script qui demande les identifiants.
La théorie voudrait donc qu'on appelle le script avec un deuxième sur le mode:
runas /user:user_name /pass:12345 "mon.cmd"
qui ne fonctionne pas, la sécurité continuant de demander le mot de passe; un contournement est de l'enregistrer une fois pour toutes à la première utilisation:
runas /user:user_name /savecred "mon.cmd"
Il n'y a pas d'autre solution autre que de passer par un utilitaire tiers, on peut par exemple essayer avec PsExec:
https://docs.microsoft.com/fr-fr/sysinternals/downloads/psexec
Modifié le 20 juin 2022 à 11:56
en effet j'ai vu la solution avec pstools mais cela oblige à l'installer sur tous les postes du reseau et le parc concerné est conséquent
je ne peux pas non plus enregistrer le mdp car il faudrait le faire pour chaque machine et chaque profil utilisateur
il n'existe pas d'option où l'on va récupérer le mot de passe placé dans un autre fichier et une commande vient le copier coller lorsqu'il est demandé? une sorte de robot qui vient taper à notre place
20 juin 2022 à 11:56
si tu travailles en domaine AD, il suffirait de faire ça par GPO ...
Là plus de soucis...
23 juin 2022 à 22:45
voici mes commandes :
xcopy /s "\\monserv\pstools" "%windir%\system32\pstools\" /Y
setx path /m "%path%;%windir%\system32\pstools"
ca fonctionne bien en utilisant psexec mais c'est vrai qu'il reste un petit détail que je voudrais améliorer. Le mdp reste accessible dans le batch donc pas hyper secure puisque cest le mdp admin du domaine.
en effet voici la commande du batch destiné à bloquer un programme via parefeu :
psexec -accepteula -u mondomaine\admin -p mypassword -d cmd.exe /c \\monserv\cmd\vblockbrowsers.bat
Y a une possibilité pour masquer le mdp ou le rendre moins visible? ou alors il faut que je mette la .bat en fichier caché mais tout utilisateur peut facilement réafficher les fichiers cachés
merci
23 juin 2022 à 23:16
La solution est peut-être de convertir le bat en exe?
Le hic, c'est bien sûr s'il faut s'adresser à plusieurs machines, il faudrait un exe différent pour chaque machine et chaque mot de passe.
D'autres sources, comme ici, suggèrent d'intégrer le bat à une archive zip dotée d'un mot de passe ou de le chiffrer (CERTUTIL, codeur base64...), je n'ai rien testé de tout cela puisqu'il faut que le bat ainsi traité reste opérationnel.
C'est probablement le cas avec la solution zip (il suffit de décompresser à la volée, mais manuellement à la ligne de commande puisque planifier le batch ou en faire un deuxième à cet effet va perdre de son intérêt: c'est le deuxième mot de passe qui sera visible).
https://www.developpez.net/forums/d1297398/general-developpement/programmation-systeme/windows/scripts-batch/outils-cryptage-sous-windows/
23 juin 2022 à 23:26
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question24 juin 2022 à 19:58
je pense que je vais aussi tenter une méthode toute simple : placer le fichier .bat dans un lecteur invisible par l'utilisateur, le C: tout simplement puisqu'il est masqué pour les utilisateurs (via clé registre nodrives et noviewondrives).
en espérant que l'execution puisse bien se faire
25 juin 2022 à 12:25
Modifié le 13 juil. 2022 à 22:57
ok. mais la conversion en .exe semble etre laseule option pour que personne ne puisse voir le mdp admin
je rencontre un pb etrange, quand je met la commande qui appelle un .bat ca fonctionne bien mais si j'insere la commande dans le psexec cela demande un droit administrateur
commande ok mais requiert 2 fichiers
psexec -accepteula -u mondomaine\admin -p mypassword -d cmd.exe /c \\monserv\cmd\vblockbrowsers.bat
commande pas ok
psexec -accepteula -u mondomaine\admin -p mypassword -d cmd.exe /c (^netsh advfirewall firewall add rule name="chrome" dir=in action=block program="C:\program files\google\chrome\application\chrome.exe" enable=yes profile=any ^)
si un utilisateur lance ce batch il est indiqué "loperation demandée requiert une elevation"
14 juil. 2022 à 10:21
Bonjour,
Je ne suis pas sûr de comprendre la question. Le script n'est pas destiné à être lancé par l'utilisateur sur un des postes cibles?
Le problème peut se trouver à la fois dans PSEXEC et dans NETSH: dans les deux cas, on a besoin que soit activé sur le poste cible le partage administratif admin$.
Dans le deuxième, la plupart des commandes NETSH nécessitent une élévation qui peut peut-être être obtenue à partir du commutateur -h de PSEXEC et qui sinon passe en principe par PowerShell:
https://ss64.com/ps/syntax-elevate.html
Qui plus est NETSH interdit en local l'utilisation d'un identifiant et d'un mot de passe, et nécessite en réseau non seulement que le partage de fichiers et d'imprimantes y soit actif, mais également que le service d'accès distant au registre soit activé.
23 juil. 2022 à 21:42
bonjour, ou est ce qu'il faudrai mettre le -h dans ma commande psexec pour supprimer le message qui demande l'elevation?
24 juil. 2022 à 07:22
17 août 2022 à 19:58
salut je reviens sur ce pb d'élévation de droit avec psexec. même en ajoutant -h dans la commande j'obtiens le message "could not start psexesvc service on A01-1" > A01-1 étant le nom de la machine
j'ai ensuite l'opération demandé requiert une élévation. pourtant tout est OK en admin la commande se lance bien
psexec -accepteula -u mondomaine\admin -p mypassword -h -d cmd.exe /c (^netsh advfirewall firewall add rule name="chrome" dir=in action=block program="C:\program files\google\chrome\application\chrome.exe" enable=yes profile=any ^)
ca reste mysterieux. Le seul moyen de ne pas avoir le pb d'élévation c'est d'avoir un deuxieme fichier .bat que psexec vient lancer
17 août 2022 à 20:26
Je crains qu'il n'y ait pas en effet de solution claire, c'est le serpent qui se mord la queue: Psexec lance les commandes requises au niveau administrateur avec le commutateur h, mais a lui-même besoin d'être lancé en tant qu'administrateur, ce qui va fonctionner parfaitement à la ligne de commande, mais pas dans une tâche planifiée.
On trouve un certain nombre de solutions complexes dont par exemple celle-ci:
https://stackoverflow.com/questions/7044985/how-can-i-auto-elevate-my-batch-file-so-that-it-requests-from-uac-administrator
Et un certain nombre d'autres idées en Googolisant quelque chose du style "psexec batch scheduled task elevation" ou "batch elevate to administrator', je te laisse faire ton marché pour voir si tu y trouves l'inspiration...
14 juil. 2022 à 18:26
Bonjour
Je maintiens la solution GPO ... dans un domaine, ce sont leurs finalités.
14 juil. 2022 à 23:34
Bonsoir,
Tu as à l'évidence raison à cela près que l'auteur semble ne pas en vouloir pour une raison qu'il n'a pas précisée.
15 juil. 2022 à 14:15
Bonjour .. Pourquoi faire simple ?
Modifié le 16 juil. 2022 à 12:57
je precise un peu plus mon objectif de masquer le mdp admin car la GPO ne semble pas envisagée dans ce cas.
l'idée c'est qu'à un moment précis, un utilisateur (prof) envoie une commande sur un autre poste utilisateur (etudiant) via un logiciel de prise en main a distance. 2 commande sont prévues, une pour bloquer le navigateur l'autre pour le debloquer. les fchiers scripts integrant psexec sont préparamétré dans l'appli, invisible pour l'utilisateur. mais pas complètement inaccessible pour ce dernier puisque les scripts sont stocké sur un disque partagé. Donc en imaginant que meme bien caché l'utilisateur retrouve le batch il pourrait réactiver le navigateur. car meme en masquant le disque avec le registre via la clé "nodrives" il faut que le disque reste accessible pour l'utilisateur donc "noviewondrive" ne peut pas s'envisager à priori.
voila pourquoi meme si au pire le script est décelé, au moins le mdp admin ne doit pas être récupérable.
Modifié le 17 août 2022 à 21:15
Bonjour,
Psexec possède un commutateur -s qui permet d'utiliser le compte "NT AUTHORITY\SYSTEM"
Ce compte est le plus puissant des comptes, et n'est pas soumis à l'UAC.
17 août 2022 à 21:57
Bonjour,
Oui, j'ai vu cela également, mais que le commutateur soit h ou s, je ne suis pas sûr du résultat en tâche planifiée: ce n'est pas apparemment l'instruction psexec qui ne s'exécute pas faute de droits sur la cible, mais le fait que l'on se fait jeter dès que psexec est lu; le service psexec n'est pas lancé faute que préalablement on dispose de droits administratifs pour ce faire, ce qui a lieu quand on exécute un batch en choisissant préalablement comme administrateur.