Estou tentando definir direitos de pasta para um grupo como este:
\ server \ Share $ \ Folder1 \ Folder2
Travessia no compartilhamento $ - > Atravessar pasta1 - > Modificar pasta2
Existem mais pastas no compartilhamento, mas o grupo não deve ter acesso. É por isso que defino "Nenhum", "Nenhum" para a herança & Sinalizadores de propagação em $ AccessRuleTraverse.
$AccessRuleModify = New-Object System.Security.AccessControl.FileSystemAccessRule("TestGroup","Modify","ContainerInherit, ObjectInherit","None","Allow")
$AccessRuleTraverse = New-Object System.Security.AccessControl.FileSystemAccessRule("TestGroup","Traverse,ListDirectory","None","None","Allow")
$ACL = Get-Acl $Share
$ACL.AddAccessRule($AccessRuleTraverse)
$ACL | Format-List
Set-Acl -Path $Share $ACL
$ACLFolder1 = Get-Acl $Folder1
$ACLFolder1.AddAccessRule($AccessRuleTraverse)
$ACL | Format-List
Set-Acl -Path $Folder1 $ACLFolder1
$ACLFolder2 = Get-Acl $Folder2
$ACLFolder2.AddAccessRule($AccessRuleModify)
$ACL | Format-List
Set-Acl -Path $Folder2 $ACLFolder2
Quando faço isso por meio do caminho UNC, o TestGroup é adicionado, mas todos os grupos herdados são removidos: BUILTIN \ Administrators, SYSTEM e outro grupo do AD herdado do nível acima. Se eu fizer o check-in, a herança da GUI parece ativada e quando eu desativar & reativá-lo os grupos misteriosamente desaparecidos estão de volta.
Se eu adicionar '$ ACL | Format-List 'antes de Set-ACL retorna os grupos ...
Get-Acl mostra:
Path : Microsoft.PowerShell.Core\FileSystem::\server\tbd$\test2
Owner : BUILTIN\Administrators
Group : DOMAIN\Domain Users
Access :
DOMAIN\admaccount Allow FullControl
DOMAIN\InheritedGroup Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
Audit :
Sddl : O:BAG:DUD:AI(A;OICIID;FA;;;S-1-5-21-3230232255-2288239599-1684634387-2072)(A;OICIID;FA;;;S-1-5-21-3230232255-2288239599-1684634387-55095)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)
Após o .AddAccessRule:
Path : Microsoft.PowerShell.Core\FileSystem::\server\tbd$\test2
Owner : BUILTIN\Administrators
Group : DOMAIN\Domain Users
Access :
DOMAIN\TestGroup Allow ReadData, ExecuteFile, Synchronize
DOMAIN\admaccount Allow FullControl
DOMAIN\InheritedGroup Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
Audit :
Sddl : O:BAG:DUD:AI(A;;0x100021;;;S-1-5-21-3230232255-2288239599-1684634387-61957)(A;OICIID;FA;;;S-1-5-21-3230232255-2288239599-1684634387-2072)(A;OICIID;FA;;;S-1-5-21-3230232255-2288239599-1684634387-55095)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)
EDITAR:
Após o feedback, testei diretamente no servidor com um caminho local:
$AccessRuleTraverse = New-Object System.Security.AccessControl.FileSystemAccessRule("TestGroup","Traverse,ListDirectory","None","None","Allow")
$ACL = Get-Acl F:\tbd\test2
$ACL | Format-List
$ACL.AddAccessRule($AccessRuleTraverse)
$ACL | Format-List
Set-Acl -Path F:\tbd\test2 $ACL
Get-Acl mostra:
Path : Microsoft.PowerShell.Core\FileSystem::F:\tbd\test2
Owner : BUILTIN\Administrators
Group : BELGIANRAIL\Domain Users
Access : BELGIANRAIL\admaccount Allow FullControl
BELGIANRAIL\InheritedGroup Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
Audit :
Sddl : O:BAG:DUD:AI(A;OICIID;FA;;;S-1-5-21-3230232255-2288239599-1684634387-2072)(A;OICIID;FA;;;S-1-5-21-3230232255-2288239599-1684634387-55095)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)
Após o .AddAccessRule:
Path : Microsoft.PowerShell.Core\FileSystem::F:\tbd\test2
Owner : BUILTIN\Administrators
Group : BELGIANRAIL\Domain Users
Access : BELGIANRAIL\TestGroup Allow ReadData, ExecuteFile, Synchronize
BELGIANRAIL\admaccount Allow FullControl
BELGIANRAIL\InheritedGroup Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
Audit :
Sddl : O:BAG:DUD:AI(A;;0x100021;;;S-1-5-21-3230232255-2288239599-1684634387-61957)(A;OICIID;FA;;;S-1-5-21-3230232255-2288239599-1684634387-2072)(A;OICIID;FA;;;S-1-5-21-3230232255-228823959
9-1684634387-55095)(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)
Parece o mesmo do caminho da UNC. Mas o resultado final é totalmente diferente, com o caminho local funciona bem! Eu acho que eu poderia pegar o caminho local e iniciar uma sessão ps remota. Seria mais fácil com o caminho UNC embora:)