Script para redefinir permissões de diretório inicial em um compartilhamento do Windows

2

Alguém usou um script para redefinir as permissões em um diretório de diretórios base? Estou pensando em uma combinação de loops FOR e CACLS para adicionar uma permissão Modificar herdável a uma pasta usando o mesmo nome de usuário do domínio que o nome da pasta.

Estamos migrando compartilhamentos de usuários de um servidor para outro e os compartilhamentos existentes nem todos têm as permissões adequadas definidas. Estou pensando em copiar todas as pastas sem copiar as permissões e, em seguida, redefinir as permissões por meio do script para que somente o nome de usuário que corresponda à pasta tenha acesso. Posso, então, reaplicar quaisquer permissões adicionais necessárias para os usuários terem acesso à pasta de outro usuário.

    
por Kevin Kuphal 24.07.2009 / 18:08

2 respostas

5

Supondo que você esteja executando isso no Windows Server 2003 ou mais recente, você terá os comandos TAKEOWN e ICACLS. Eu também estou supondo que a permissão de pasta de nível superior é definida sanely (ou seja, "Usuários autenticados - Listar conteúdo da pasta - somente esta pasta", permissões de "Administrador" apropriadas se você quiser entrar em pastas de usuário, etc). / p>

@echo off
FOR /D %%i in (*) do (
  TAKEOWN /f "%%i" /r /d y
  ICACLS "%%i" /reset /T
  ICACLS "%%i" /grant:r "DOMAIN\%%i":(OI)(CI)F
  rem Unremark this line to set the owner to the user, if you like that
  rem ICACLS "%%i" /setowner "DOMAIN\%%i" /T
)

Isso assumirá a propriedade, limpará todas as permissões e restaurará a herança, adicionará o usuário com direitos de Controle total ao diretório e, opcionalmente, devolverá a propriedade se você cancelar a remoção da última linha.

Meus pêsames por ter que lidar com usuários compartilhando arquivos entre si fora dos diretórios home. Isso é uma dor real.

    
por 24.07.2009 / 18:26
0

Para referência, este é o script que usei porque melhor se adequava ao nosso ambiente

@ECHO OFF
FOR /D %%G IN ("*") DO echo y| cacls "%%G" /T /E /G "DOMAIN\%%G:C"

como só precisamos conceder permissões ao usuário.

    
por 24.07.2009 / 23:41