Попытка показать только папки, которые IsInherited имеет значение False
Мой код
$folder = "C:\TZTEST"
$aclentry = get-childitem $folder -recurse -force | get-acl | % {$_.Access}
$manypaths = get-childitem $folder -recurse -force
$aclentry | Format-Table
$newlist = @()
foreach($onepath in $manypaths) {
$acldata=$(get-childitem $folder -recurse -force | get-acl | % {$_.Access})
$itemobject = New-Object –TypeName PSObject
if ($onepath.Mode -match "d-----" -and $acldata.IsInherited -eq $false -and $acldata.PropagationFlags -eq "InheritOnly") {
$itemobject | Add-Member –MemberType NoteProperty –Name "Location" -Value $onepath.FullName
$itemobject | Add-Member –MemberType NoteProperty –Name "IsInherited" -Value $acldata.IsInherited
$newlist +=$itemobject
}
}
$newlist
Работает частично Когда все папки наследуют разрешения в соответствии с целевая папка не выводит (правильно) Если одна или несколько папок не наследуют разрешения, на выходе отображаются все папки в целевой папке (неверно)
Настройка папки Целевая папка | -Subfolder1 - Подпапка3 | -Подпапка2
Наследование включено в 2 из 3 подпапок (Подпапка1, Подпапка2 включено ) (Подпапка3 отключено ) (неверный вывод) Разрешение папки - Подпапка3 Нет наследования
Наследование включено для всех подпапок (правильный вывод) Разрешение папки - Все наследование (без вывода)
Мой вопрос Есть ли какой-нибудь способ сделать так, чтобы в моем выводе отображалась только папка, для которой не включено наследование?
Заранее благодарим за любую помощь или понимание, которое вы можете предоставить.