Windows 2003; Rechercher des dossiers avec des autorisations non héritées / modifiées

8

La question : je cherche un bon moyen pour auditer / rechercher une structure de répertoires (Windows 2003) et localiser tous les dossiers qui n'héritent pas des autorisations de leur parent - ou - ont des utilisateurs / groupes supplémentaires ajoutés.

L'histoire de retour

Nous migrons un ancien serveur de fichiers Windows 2003 vers une boîte 2008 R2. Cet ancien serveur a été migré depuis NT4. La plupart des dossiers actuels utilisent les anciens groupes Domaine \ Administrateurs et Domaine \ Utilisateurs (obsolètes?). Ce sont des groupes que, bien que toujours dans AD, je ne peux pas utiliser pour les autorisations dans les autorisations 2008 R2.

Donc, avant de voler sur toutes les données partagées de l'ancien serveur vers le nouveau, je dois d'abord "moderniser" les autorisations sur les anciens partages. Cependant, je sais qu'au cours des dernières décennies, certains dossiers [non documentés] ont vu leurs autorisations modifiées pour ne pas hériter du parent ou pour ajouter des utilisateurs supplémentaires. D'où ma quête d'un moyen de les retrouver!

Chris_K
la source

Réponses:

8

Je recommanderais d'utiliser Powershell (pour Win2003: http://support.microsoft.com/kb/968929/en-us ) et un module complémentaire supplémentaire également pour cela ( http://gallery.technet.microsoft.com / scriptcenter / 1abd77a5-9c0b-4a2b-acef-90dbb2b84e85 ).

Cela vous aidera d'abord à obtenir l'héritage d'une structure de dossiers avec (lors de l'exécution à partir de votre dossier de démarrage), par exemple.

get-childitem -Recurse | get-inheritance | export-CSV C:\Inheritance.csv -NoTypeInformation

Vous obtiendrez tous les fichiers et dossiers dans un fichier csv qui peut ensuite être filtré dans Excel ou d'autres bases de données si vous en avez besoin.

L'avantage supplémentaire du module NTFSSecurity est que vous pouvez également modifier l'héritage ou les listes de contrôle d'accès pendant la migration avec un script Powershell similaire.

par exemple, vous pouvez supprimer complètement l'héritage dans un dossier (votre dossier de démarrage) avec:

get-childitem | Disable-Inheritance

ou ajoutez à nouveau le commutateur -recurse pour tous les sous-dossiers / fichiers.

J'espère que cette aide

Mr.T
la source
1
+1 pour m'avoir informé du module PowerShell de sécurité du système de fichiers.
pk.
Petit, mais extrêmement fonctionnel et utile! Un incontournable!
Volodymyr Molodets
1

C'est assez facile avec SetACL . Exécutez-le comme ceci:

SetACL -on "some path" -ot file -actn list -lst f:csv -rec cont

Cette commande indique à SetACL d'imprimer les autorisations de ces objets uniquement qui ont des autorisations explicites, soit parce que les ACE ont été ajoutées à un répertoire avec l'héritage activé, soit parce que l'héritage a été désactivé et que de nouvelles ACE ont été définies.

SetACL traite les chemins de plus de 260 caractères et répertorie les ACE de n'importe quel répertoire indépendamment des autorisations actuelles, c'est-à-dire même si vous n'avez même pas accès en lecture SetACL vous montre ce qui est là et affiche les autorisations (droits d'administrateur requis).

Helge Klein
la source