Obtenir les noms des dossiers qui n'héritent pas des autorisations
J'essaie de trouver tous les dossiers qui n'héritent pas des autorisations.
Cela semble fonctionner, sorta:
DIR "C:\temp" -annuaire-recurse | GET-ACL | select-ExpandProperty d'Accès | ? -propriété IsInherited -eq $false
...mais il laisse de côté le véritable nom de dossier.
Comment puis-je inclure les noms de dossier dans le résultat final? Il devient un peu difficile pour moi car j'ai besoin de filtre sur une propriété d'un objet (d'Accès) à l'intérieur d'un objet (quel GET-ACL retours).
Des idées?
- vous avez probablement besoin de sélectionner le
path
propriété dans votre instruction select. Ensuite, vous devez boucle de chaque chemin de remplacer les fausses données supplémentaires que Get-ACL comprendMicrosoft.PowerShell.Core\FileSystem::
de chaque chemin. (vous allez voir)
Vous devez vous connecter pour publier un commentaire.
Scratch, je suis un idiot.
DIR "C:\temp" -annuaire-recurse | GET-ACL | where {$_.D'accès.IsInherited -eq $false}
Je pense que les autres réponses ne sont pas vraiment correspondre à votre demande: les commandes suggéré de vous donner tous les non-héritées de la règle d'accès, mais aussi un hériter du dossier peut avoir de telles règles.
J'étais à la recherche d'une meilleure manière d'atteindre le même objectif, mais pour le moment c'est le seul moyen que j'ai trouvé:
Le concept est le suivant: si un dossier a au moins 1 hérité de la règle d'accès, puis l'héritage est activé, si il a 0 règles héritées, l'héritage est désactivé.
Vous pouvez utiliser les Add-Membre pour ajouter le chemin d'accès à la propriété chaque ACE objet:
J'ai aussi enveloppé Get-Acl dans un bloc try, car il jette à la résiliation des erreurs.