A partir daqui: link
O Powershell contém os comandos get-acl
e set-acl
e você pode canalizá-los juntos:
Get-Acl -Path C:\Folder1 | Set-Acl -Path C:\Folder2
Esses caminhos podem ser UNC ou outros métodos de caminho apropriados, então eles devem ser capazes de trabalhar em redes.
Atualização:
Os descritores de segurança PODEM ser copiados e armazenados. O seguinte não é o processo mais eficiente, é a primeira vez que eu tentei fazer isso, mas é funcional.
Algumas pesquisas do Google, refinadas e iterativamente, me trouxeram até aqui: link
E aqui está o processo.
-
Capture a ACL do computador de origem:
$SDout = get-acl -path (source folder)
-
Armazene o SDDL na área de transferência:
$SDout.GetSecurityDescriptorSddlForm('All') | clip.exe
- Cole no bloco de notas e vá para o computador de destino.
- Copie SOMENTE o SDDL de linha única para a área de transferência.
-
Armazene o SDDL de origem em um parâmetro:
$SDsource = '(paste the source SDDL here)'
-
Capture o objeto ACL de destino em um parâmetro:
$SDtarget = get-acl -path (target folder)
-
Sobrescrever o SDDL do alvo com o SDDL da fonte:
$SDtarget.SetSecurityDescriptorSddlForm($SDsource)
-
Escreva a ACL modificada de volta à pasta de destino:
set-acl -Path (target folder) -ACLObject $SDtarget
Verificando as propriedades agora você deve ver a pasta de destino com as mesmas permissões que a pasta de origem.