A voir également:
- Copie de fichier vers destination variable
- Fichier rar - Guide
- Fichier host - Guide
- Comment ouvrir un fichier epub ? - Guide
- Copie cachée - Guide
- Comment réduire la taille d'un fichier - Guide
4 réponses
brucine
Messages postés
17910
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
27 novembre 2024
2 620
Modifié le 22 avril 2022 à 01:32
Modifié le 22 avril 2022 à 01:32
Bonjour,
A supposer que je mette tous les fichiers source dans un dossier transmis au destinataire et qu'il enregistrera où il veut, par exemple sur son bureau, un simple batch suffit:
L'utilisateur est requis d'entrer le nom de ce fameux dossier chiffré, %~dp0 prescrit d'exécuter les commandes depuis le dossier où la commande est lancée (en français, le batch copie.cmd et tes fichiers sources sont dans le même dossier).
Dans mon exemple, il n'y a que des fichiers sous \module et \script; s'il y a aussi des sous-dossiers, on modifie les paramètres de COPY.
Si on veut faire dans Monsieur Propre, on détruit après la copie les fichiers transmis, mais il faut alors que le dossier soit copié toujours dans le même emplacement; s'il s'agit du bureau et du dossier FOLDER:
RD /S /Q %HOMEPATH%\Desktop\FOLDER
On ne peut pas crypter un fichier sauf format propriétaire exigeant un logiciel au départ et à l'arrivée: le plus simple est donc de tout expédier au format compressé zip qui lui comportera un mot de passe connu seulement des deux parties.
A supposer que je mette tous les fichiers source dans un dossier transmis au destinataire et qu'il enregistrera où il veut, par exemple sur son bureau, un simple batch suffit:
@echo off
SET /P _REP=ENTRER NOM:
COPY "%~dp0\module\*.*" "C:\%_REP%\module\"
COPY "%~dp0\script\*.*" "C:\%_REP%\script\"
L'utilisateur est requis d'entrer le nom de ce fameux dossier chiffré, %~dp0 prescrit d'exécuter les commandes depuis le dossier où la commande est lancée (en français, le batch copie.cmd et tes fichiers sources sont dans le même dossier).
Dans mon exemple, il n'y a que des fichiers sous \module et \script; s'il y a aussi des sous-dossiers, on modifie les paramètres de COPY.
Si on veut faire dans Monsieur Propre, on détruit après la copie les fichiers transmis, mais il faut alors que le dossier soit copié toujours dans le même emplacement; s'il s'agit du bureau et du dossier FOLDER:
RD /S /Q %HOMEPATH%\Desktop\FOLDER
On ne peut pas crypter un fichier sauf format propriétaire exigeant un logiciel au départ et à l'arrivée: le plus simple est donc de tout expédier au format compressé zip qui lui comportera un mot de passe connu seulement des deux parties.
Super, Merci beaucoup C'est parfait.
Par contre s'il n'y a qu'un terminal de destination est-il possible d'y copier par défaut les fichiers sans que l'utilisateur ne doive entrer son numéro de terminal ?
Donc par exemple si c'est C:\User\Admin\123456 est-il possible d'indiquer au script de copier les fichiers dans le dossier 123456 sachant que c'est ce numéro là qui change mais que la racine est identique pour tous ?
Donc utilisateur 1 ce serait C:\User\Admin\123456 mais utilisateur 2 ce serait C:\User\Admin\7891011 par exemple, sans que l'utilisateur ne doive chercher ce chiffre.
et dernière question, pour mon histoire de copyright, serait-il alors possible de les mettre en fichiers cachés (via les paramètres de base du fichier) pour qu'il n'apparaisse pas de base dans le Zip et donc éviter des copies non voulues ou autres problèmes ?
Encore merci de tes réponses
Par contre s'il n'y a qu'un terminal de destination est-il possible d'y copier par défaut les fichiers sans que l'utilisateur ne doive entrer son numéro de terminal ?
Donc par exemple si c'est C:\User\Admin\123456 est-il possible d'indiquer au script de copier les fichiers dans le dossier 123456 sachant que c'est ce numéro là qui change mais que la racine est identique pour tous ?
Donc utilisateur 1 ce serait C:\User\Admin\123456 mais utilisateur 2 ce serait C:\User\Admin\7891011 par exemple, sans que l'utilisateur ne doive chercher ce chiffre.
et dernière question, pour mon histoire de copyright, serait-il alors possible de les mettre en fichiers cachés (via les paramètres de base du fichier) pour qu'il n'apparaisse pas de base dans le Zip et donc éviter des copies non voulues ou autres problèmes ?
Encore merci de tes réponses
brucine
Messages postés
17910
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
27 novembre 2024
2 620
22 avril 2022 à 12:40
22 avril 2022 à 12:40
J'ai été un peu expéditif ne connaissant pas la structure exacte de ton problème: intégrer le script au dossier transmis n'est pas forcément une idée fameuse si on doit en automatiser la suppression, on va tomber sur un bec; mais ce n'est qu'un point de détail, on peut parfaitement enregistrer le dossier d'un côté, le script dans un dossier externe.
Le script en question n'a aucun moyen de savoir à quoi ressemble le dossier personnalisé de chaque utilisateur; la seule solution est alors de demander à cet utilisateur de copier le dossier transmis dans ce dossier personnalisé: la variable %~dp0 en récupérera forcément le chemin (mais copiera aussi le dossier transmis brut de coffrage sauf à y utiliser une syntaxe MOVE plutôt que COPY, à faire une exclusion via cette fois-ci XCOPY, à le supprimer après..., des détails anonymisés seraient bienvenus).
Les fichiers deviennent cachés par attribut adapté, c'est là aussi très simple y compris en exécutant le script, mais c'est une protection illusoire, il suffit au destinataire d'opter pour l'affichage des fichiers cachés.
La solution zip permet que seul l'utilisateur pourvu du mot de passe puisse décompresser et donc voir, mais rien ne s'oppose ensuite à la divulgation de ces fichiers.
Une solution de cryptage, délicate à mettre en oeuvre sur plusieurs PC en ne se servant que de Windows (qui doit en outre être en version Pro):
https://www.phhsnews.com/how-decrypt-encrypted-windows-files
ou passant par des logiciels commerciaux dédiés conduira au même résultat encore que la bonne question, à laquelle je n'ai pas de réponse, est de savoir, s'il ne s'agit que de scripts, s'ils peuvent être exécutés par Windows sur le PC de l'utilisateur sans être décryptés, je ne crois pas.
Si les utilisateurs n'ont que des comptes utilisateurs, la solution la plus simple (toujours Windows Pro) est de passer par une stratégie locale GPO qui dénie toute autorisation y compris de lecture à qui n'est pas administrateur, voire même pourquoi pas tel administrateur sur le dossier de scripts.
Le script en question n'a aucun moyen de savoir à quoi ressemble le dossier personnalisé de chaque utilisateur; la seule solution est alors de demander à cet utilisateur de copier le dossier transmis dans ce dossier personnalisé: la variable %~dp0 en récupérera forcément le chemin (mais copiera aussi le dossier transmis brut de coffrage sauf à y utiliser une syntaxe MOVE plutôt que COPY, à faire une exclusion via cette fois-ci XCOPY, à le supprimer après..., des détails anonymisés seraient bienvenus).
Les fichiers deviennent cachés par attribut adapté, c'est là aussi très simple y compris en exécutant le script, mais c'est une protection illusoire, il suffit au destinataire d'opter pour l'affichage des fichiers cachés.
La solution zip permet que seul l'utilisateur pourvu du mot de passe puisse décompresser et donc voir, mais rien ne s'oppose ensuite à la divulgation de ces fichiers.
Une solution de cryptage, délicate à mettre en oeuvre sur plusieurs PC en ne se servant que de Windows (qui doit en outre être en version Pro):
https://www.phhsnews.com/how-decrypt-encrypted-windows-files
ou passant par des logiciels commerciaux dédiés conduira au même résultat encore que la bonne question, à laquelle je n'ai pas de réponse, est de savoir, s'il ne s'agit que de scripts, s'ils peuvent être exécutés par Windows sur le PC de l'utilisateur sans être décryptés, je ne crois pas.
Si les utilisateurs n'ont que des comptes utilisateurs, la solution la plus simple (toujours Windows Pro) est de passer par une stratégie locale GPO qui dénie toute autorisation y compris de lecture à qui n'est pas administrateur, voire même pourquoi pas tel administrateur sur le dossier de scripts.
Merci pour ton aide je suis presque arrivé à ce que je voulais.
J'ai opté pour l'envoi par fichier .rar mais j'aimerais maintenant que ce fichier soit également supprimé à la fin du script. J'ai essayé avec le commande del mais cela ne fonctionne pas.
J'ai mis en dernière ligne
Del C:\User\Admin\download\monfichier.rar
(En supposant que le chemin soit celui là et non autre chose puisque par défaut lors du téléchargement)
Où se trouve mon erreur ? Et avec cette action est-ce que le fichier setra récupérable dans la corbeille ? Car ce n'est pas le but
Merci
J'ai opté pour l'envoi par fichier .rar mais j'aimerais maintenant que ce fichier soit également supprimé à la fin du script. J'ai essayé avec le commande del mais cela ne fonctionne pas.
J'ai mis en dernière ligne
Del C:\User\Admin\download\monfichier.rar
(En supposant que le chemin soit celui là et non autre chose puisque par défaut lors du téléchargement)
Où se trouve mon erreur ? Et avec cette action est-ce que le fichier setra récupérable dans la corbeille ? Car ce n'est pas le but
Merci
brucine
Messages postés
17910
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
27 novembre 2024
2 620
24 avril 2022 à 14:52
24 avril 2022 à 14:52
Tout fichier est récupérable dans la corbeille si on n'a pas choisi "Ne pas déplacer, supprimer immédiatement" et que l'on ne tombe pas sur un vicieux qui annule ce paramètre; pour éviter cet éventuel écueil, on vide la corbeille dans le batch après avoir supprimé le fichier .rar:
RD /S /Q C:\$Recycle.bin
On va se faire jeter si cette ligne est lue alors que le fichier .rar n'a pas encore eu le temps d'être effacé, contourner par une temporisation de 15 secondes avant la ligne précédente:
TIMEOUT /nobreak /T 15
Tu me fais douter sur la commande DEL quant à savoir si elle considère .rar comme un fichier (ce que je crois) ou un dossier (dans cette dernière hypothèse utiliser RD /S /Q).
La commande DEL ne s'exécutera pas si le fichier .rar est ouvert; pour en empêcher la verbosité et un éventuel fichier en lecture seule, on peut utiliser les commutateurs /F /Q.
Si le chemin est trop long (ce que je ne crois pas non plus), on place entre guillemets.
Et de toute façon, même quand l'utilisateur est seul, il est plusieurs, idem pour les téléchargements, ce qui nous donne:
DEL /F /Q "C:\Users\Admin\Downloads\monfichier.rar"
TIMEOUT /nobreak /T 15
RD /S /Q C:\$Recycle.bin
Se souvenir que par définition le fichier rar a été décompressé, et qu'il faut donc aussi supprimer les fichiers décompressés qui n'auraient pas été placés directement au bon endroit.
RD /S /Q C:\$Recycle.bin
On va se faire jeter si cette ligne est lue alors que le fichier .rar n'a pas encore eu le temps d'être effacé, contourner par une temporisation de 15 secondes avant la ligne précédente:
TIMEOUT /nobreak /T 15
Tu me fais douter sur la commande DEL quant à savoir si elle considère .rar comme un fichier (ce que je crois) ou un dossier (dans cette dernière hypothèse utiliser RD /S /Q).
La commande DEL ne s'exécutera pas si le fichier .rar est ouvert; pour en empêcher la verbosité et un éventuel fichier en lecture seule, on peut utiliser les commutateurs /F /Q.
Si le chemin est trop long (ce que je ne crois pas non plus), on place entre guillemets.
Et de toute façon, même quand l'utilisateur est seul, il est plusieurs, idem pour les téléchargements, ce qui nous donne:
DEL /F /Q "C:\Users\Admin\Downloads\monfichier.rar"
TIMEOUT /nobreak /T 15
RD /S /Q C:\$Recycle.bin
Se souvenir que par définition le fichier rar a été décompressé, et qu'il faut donc aussi supprimer les fichiers décompressés qui n'auraient pas été placés directement au bon endroit.
Salut et encore un énorme merci pour toutes ces informations !
La commande DEL fonctionnait en réalité très bien mais crétin que je suis je l'ai mise en dernière ligne, donc après la commande de supression des fichiers décompressés et donc également après la supression du fichier contenant le script. Dès lors c'est très logiquement qu'il ne prenait pas en compte ce qui se passait après puisque la commande s'arrêtait avant ????
Mais j'ai été très éclairé par toute tes connaissances. C'est un plaisir d'apprendre auprès de personnes telles que toi qui explique aussi bien.
Bonne journée
La commande DEL fonctionnait en réalité très bien mais crétin que je suis je l'ai mise en dernière ligne, donc après la commande de supression des fichiers décompressés et donc également après la supression du fichier contenant le script. Dès lors c'est très logiquement qu'il ne prenait pas en compte ce qui se passait après puisque la commande s'arrêtait avant ????
Mais j'ai été très éclairé par toute tes connaissances. C'est un plaisir d'apprendre auprès de personnes telles que toi qui explique aussi bien.
Bonne journée