Il existe un module nommé NTFSSECURITY permettant une manipulation simplifié des droits NTFS sur des dossiers et/ou fichiers.
Ce module peut être trouvé sur la galerie Technet http://gallery.technet.microsoft.com/scriptcenter/1abd77a5-9c0b-4a2b-acef-90dbb2b84e85/file/48905/1/NTFSSecurity%201.3.zip
Une fois téléchargé, mettez le dossier du module NTFSSecurity ici C:\Windows\System32\WindowsPowerShell\v1.0\Modules
Maintenant, nous allons charger le module dans powershell
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_424.png)
Une fois celui-ci chargé, de nouvelles cmdlets sont désormais disponible.
…
Récupération du SID d’un utilisateur dans une variable.
Nous allons définir dans une variable $SamMember le nom de l’utilisateur que nous voulons récupérer.
Ensuite nous allons utiliser l’object System.Security.principal.NtAccount(« domaine »,utilisateur) qui va nous permettre de récupérer notre utilisateur dans un domaine spécifié.
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_434.png)
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_435.png)
Maintenant, récupérons le SID de notre utilisateur grâce à une méthode de notre variable $account.
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_428.png)
Nous avons ainsi récupéré dans notre variable $accountsid le SID de notre utilisateur spécifié dans la variable $SamMember.
Modification du propriétaire d’un répertoire.
Avec le chargement du module NTFSSecurity, une cmdlet get-owner est apparue nous permettant de connaitre simplement le propriétaire d’un élément (fichier ou répertoire).
Exemple :
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_429.png)
Nous allons maintenant changer le propriétaire de ce répertoire avec l’utilisateur contenu dans notre variable $accountsid
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_430.png)
Voyons maintenant le résultat :
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_436.png)
Le propriétaire à bien été changé.
Modification des ACE du répertoire.
Nous allons maintenant modifier les ACE du répertoire de façon à ne laisser que l’utilisateur de notre variable $accountsid en FullControl et aucune autre ACE.
Rajout de l’ACE :
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_432.png)
Suppression des autres ACE :
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_433.png)
(Ce lien permet de connaitre les SID connu dans les OS Windows http://support.microsoft.com/kb/243330)
Si on consulte maintenant nos ACE, on peut remarquer que notre ajout d’ACE s’est bien passé mais que la suppression des autres ACE ne s’est pas déroulée correctement.
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_437.png)
Cela est normal, car ses ACE sont hérité du répertoire parent. Il faut donc pour cela retirer l’héritage.
![clip_image001[4] clip_image001[4]](http://blog.piservices.fr/image.axd?picture=clip_image001%5B4%5D_thumb.png)
Et maintenant si on essaie de nouveau de supprimer nos ACE on peut remarquer que celle-ci ont bien disparu.
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_438.png)
Il est maintenant facile d’imaginer la création d’un script pouvant réappliquer correctement des droits sur une toute une arborescence de répertoires profils en récupérant par exemple le nom du répertoire profil et en réaffectant celui-ci dans une boucle pour notre variable $account.
![image image](http://blog.piservices.fr/image.axd?picture=image_thumb_439.png)
![clip_image005 clip_image005](http://blog.piservices.fr/image.axd?picture=clip_image005_thumb.jpg)
Ainsi, l’utilisateur authentifié en user2, ne pourra accéder qu’à son répertoire profil.