Comment décrypter des fichiers (EFS) en lignes de commandes.

En regardant les fichiers de journalisation de mes sauvegardes sur un serveur de fichiers, j’ai remarqué que certains fichiers n’arrivaient pas à être copiés. En investiguant, j’ai compris que certains fichiers étaient cryptés et que les utilisateurs qui utilisaient ces fichiers ne savaient aucunement pourquoi ces fichiers étaient cryptés. J’ai essayé de les décrypter en décochant l’option de cryptages dans les propriétés avancées des fichiers (voir image ci-dessous), en tant qu’administrateur de réseau, sans succès.

Propriétés avancées

Après plusieurs recherches, j’ai pu déterminer pourquoi ces fichiers étaient cryptés. Les fichiers proviennent d’un ordinateur Mac et ont été zippés, puis envoyés par courriel. Ensuite, l’utilisateur extrait les fichiers en utilisant l’utilitaire de compression natif de Windows 7. Le problème est en fait que Mac (possiblement tout système Unix) ajoute des attributs aux fichiers ZIP qui sont mal interprétés par Windows.

[…] it just so happens that in POSIX, the flag to describe a directory/folder (S_IFDIR) coincidentally also has the value 0x4000. […]

Consulter l’article.

C’est bien beau tout ça, mais comment puis-je décrypter ces fichiers?
J’ai créé un script Batch avec une commande cipher /D pour chaque fichier/dossier que j’ai exécuté en tant que l’utilisateur qui avait extrait les fichiers.

cipher /D "\\serveur\partage\dossier1\"
cipher /D "\\serveur\partage\dossier1\fichier1.ext"
cipher /D "\\serveur\partage\dossier2\fichier2.ext"

D’accord, mais comment faire pour éviter ce problème à l’avenir?
Rien de plus simple! J’ai installé un utilitaire ZIP (tel que 7zip) sur le poste des utilisateurs ayant le problème. Les programmes non natifs de Windows que j’ai essayés ont tous été capables d’extraire les fichiers correctement.