Restaurer les droits de fichiers Windows depuis une sauvegarde avec la commande Icacls

Intro

J'ai récemment fait une boulette. J'ai, suite à une mauvaise manipulation, réinitialisé les droits sur un partage de fichiers…

Il est heureusement plutôt facile de les restaurer depuis une sauvegarde et avec la commande icacls.

J'ai personnellement restauré les ACLs depuis un snapshot vss (et avec l'outil dosdev) mails on peut également le faire depuis n'importe quel type de sauvegarde.

Si, comme moi, vous voulez utiliser un snapshot windows, il va falloir d'abord le monter comme un lecteur, sauvegarder les ACLs vers un fichier et le restaurer avec la commande icacls.

Monter un snapshot vss

Nous allons voir ici comment monter un snapshot en tant que lecteur H:.

  • Ouvrir une console PowerShell avec les droits administrateur :
PowerShell | Open as administrator
  • Lister les snapshots pour le lecteur D: :
PS C:\> vssadmin list shadows /for=D:
  • Idenfier le snaphost que l'on souhaite monter :
PowerShell | vssadmin list shadows result
  • Télécharger l'utilitaire dosdev.zip, le dézipper puis l'utiliser pour monter le snapshot en tant que lecteur H: :
PS C:\> .\dosdev.exe H: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3
PowerShell | mount vss snapshot with dosdrive tool

Restaurer les droits

  • Se déplacer dans H: et sauvegarder les ACLs pour chaque dossier avec la commande icacls :
PS C:\> H:
PS H:\> cd .\Share\
PS H:\> icacls 01-Admin /save c:\BACKUPACL_01-Admin /T /C
PS H:\> icacls 02-Softwares /save c:\BACKUPACL_01-Softwares /T /C
PS H:\> icacls 03-Temp /save c:\BACKUPACL_03-Temp /T /C
PowerShell | icacls save ACLs
  • Restaurer les ACLs pour chaque dossier avec la commande icacls :
PS H:\> cd D:\Share
PS D:\> icacls .\ /restore c:\BACKUPACL_01-Admin /T /C
PS D:\> icacls .\ /restore c:\BACKUPACL_02-Admin /T /C
PS D:\> icacls .\ /restore c:\BACKUPACL_03-Admin /T /C
PowerShell | icacls restore ACLs
  • Démonter le lecteur H: :
PS D:\> .\dosdev.exe H: /D
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :