Aqui está um roteiro do Powershell que acabei de fazer e que te leva a maior parte do caminho até lá. Ele fornece todas as ACLs em um arquivo / pasta que corresponde às funções de um usuário:
Param($fileName,$user)
$groups = ([ADSISEARCHER]"samaccountname=$($user)").Findone().Properties.memberof -replace '^CN=([^,]+).+$','$1'
$acls = (get-acl $fileName).access
$aclNames = $acls.identityreference.Value
#sls returns match objects, we need strings
$aclsForUser = $aclNames | sls $groups | %{$_.tostring()}
$acls | ? IdentityReference -in $aclsForUser