23/11/2024

AstucesPowerShell

Comment ajouter ou supprimer le marqueur « Mark-of-the-Web » sur un fichier ?

I. Présentation

Dans ce tutoriel, nous allons apprendre à manipuler le marqueur "Mark-of-the-Web" sur un fichier afin de pouvoir indiquer qu'il provient d'Internet ou non. L'intérêt est de pouvoir prendre un fichier local, lui attribuer le marqueur MOTW pour faire comme s'il venait d'Internet, et ensuite tester une fonctionnalité de sécurité (par exemple, le blocage des macros Office).

Windows s'appuie sur une fonctionnalité nommée "Mark-of-the-Web" (MOTW ou "Marque du Web" en français), pour déterminer si un fichier provient d'Internet ou non grâce à un identifiant de zone. Quand un fichier provient d'Internet, cet attribut est associé au fichier, ce qui permet aux applications qui prennent en charge ce marqueur de l'exploiter et, éventuellement, d'adapter leur comportement.

Sur son site, Microsoft donne la liste des zones prises en charge avec le nom et l'ID correspondant à chaque fois. Ce qui donne :

Valeur (ID)  Setting
------       ------------------------
0            Mon ordinateur
1            Zone intranet locale
2            Zone des sites de confiances
3            Zone Internet
4            Zone des sites restreints

Pour appliquer le marqueur Mark-of-the-Web sur un fichier, il faut lui attribuer la zone Internet, c'est-à-dire la zone avec l'ID "3".

II. Ajouter "Mark-of-the-Web" à un fichier

Par l'intermédiaire de PowerShell et du cmdlet Set-Content, nous allons pouvoir modifier les propriétés du fichier. En l'occurrence, c'est l'attribut "Zone.Identifier" qui va être modifié pour basculer le fichier sur la zone "3". Ainsi, si l'on veut ajouter le marqueur sur un fichier nommé "TestMacro.xlsm" qui se trouve dans le répertoire courant, on utilise :

Set-Content -Path ".\TestMacro.xlsm" -Stream Zone.Identifier -Value '[ZoneTransfer]','ZoneId=3'

Ensuite, si l'on regarde dans les propriétés du fichier, on peut voir la présence de la section "Sécurité" qui atteste de la présence du marqueur. Sur un fichier local, cette section n'est pas présente. Mon fichier créé en local est désormais considéré comme en provenance d'Internet !

Ajouter Mark-of-the-Web sur un fichier avec PowerShell

III. Supprimer "Mark-of-the-Web" d'un fichier

Pour supprimer le marqueur MOTW, il est possible de cocher l'option "Débloquer" dans les propriétés du fichier et de valider. Pour continuer sur notre lancée et le faire en PowerShell, il suffit d'utiliser un cmdlet adapté : Unblock-File. Grâce à la présence de ce cmdlet, il n'est pas nécessaire de réutiliser Set-Content.

Ce cmdlet s'utilise très facilement, car il suffit de préciser le nom du fichier :

Unblock-File ".\TestMacro.xlsm"

Ensuite, si l'on regarde les propriétés du fichier, on voit bien que la section "Sécurité" n'apparaît plus.

Voilà, vous êtes désormais capable de gérer l'ajout et la suppression du marqueur "Mark-of-the-Web" sur des fichiers, que ce soit un fichier Excel, un script PowerShell ou tout autre type de fichiers.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.