(C'est mon premier message, alors désolé si je suis difficile à comprendre ou si je pose une mauvaise question)
Voici mon problème :
J'ai quelques groupes AD avec une convention d'appellation similaire. "*somename" et j'ai utilisé la commande Get-ADGroup pour obtenir un tableau rempli de ces objets.
De même, j'ai des dossiers avec des permissions NTFS sur eux que j'ai dans un autre tableau. Ces autorisations sont un mélange des groupes que j'ai mentionnés plus tôt, ainsi que d'autres groupes et utilisateurs individuels selon les besoins.
Objectif final (ce que j'aimerais trouver) :
- Quels dossiers n'ont aucun de ces groupes AD assignés.
- Et lesquels de ces groupes AD ne sont attachés à aucun dossier.
- Quels dossiers sont affectés à quel groupe AD de cette liste.
Voici ce que j'ai essayé
$CS_Dirs=get-childitem '\\my.server\share$\Dept' -recurse -depth 1 -filter copierscans
$CS_Roles=Get-ADGroup -filter {Name -like "* CopierScans"}
####For each directory in $CS_Dirs array, get acl###
foreach($dir in $CS_Dirs){
###Get the ACL for the Dir###
get-acl $dir.PSPath | %{
####Variable to tell this loop if next loops find a match###
$contains=$false
####For every access object in that ACL###
foreach ($access in $_.access){
###loop through each group to check if any of the dir's ACL's principals are in my list of AD Groups.
foreach($group in $CS_ADGrups){
#If they are then set contains to true to tell the outer loop to select that path
if($access.identityreference.ToString() -match {"DOMAIN\"+$group.name.ToString()}){
$contains=$true
}
}
}
#Should be a list of all the paths
#Which are not assigned a group contained in my $CS_ADGroups list.
if($contains){
$_ | select @{n="path";e={$_.path}}
}
}
}
Les enjeux :
Je n'arrive pas à faire correspondre les correspondances à la fin du foreach.
- Pour ce qui est de la correspondance à la fin du foreach, je n'arrive pas à obtenir une évaluation correcte lorsqu'ils correspondent. En partie parce que l'un d'entre eux a le domaine attaché à l'avant et l'autre non (d'où la partie "domain").
- Je n'arrive pas à faire en sorte qu'il sélectionne le chemin du répertoire lorsqu'il est dans une boucle foreach,