Excluindo diretórios home do usuário / definindo permissões via Powershell

0

Temos um grande número de usuários que não estão mais na organização e estamos investigando a melhor maneira de excluir as unidades de origem deles.

Infelizmente, houve problemas com as permissões de arquivos em algumas pastas criadas pelo sistema (Downloads, Documentos, Música ...), o que significa que, quando as fazemos manualmente, precisamos definir os administradores de domínio como proprietário no nível superior. Substitua as configurações mais baixas e, em seguida, conceda Controle total aos administradores de domínio antes de podermos excluir as pastas. Não podemos nos inscrever na pasta que contém, pois também há usuários atuais na mesma área.

Eu tentei criar um script (abaixo) para fazer tudo isso para cada usuário na OU em que as contas estão contidas. A execução não progrediu além do primeiro usuário e fez com que o servidor rejeitasse qualquer tentativa de navegar pelos compartilhamentos, por usuários e administradores, embora as permissões de arquivo não tenham sido alteradas. Uma reinicialização do servidor resolveu isso, mas tenho medo de qualquer tentativa de fazer outras alterações eu mesmo.

$Students = Get-ADUser -Filter {Enabled -eq $false} -SearchBase "OU=StudentHold,DC=DOMAIN,DC=lan"

ForEach ($User in $Students){

#Write the folder location to the screen.
Write-Host (Get-ADUser -Identity $User -Properties homeDirectory).homeDirectory
$StudentHome = (Get-ADUser -Identity $User -Properties homeDirectory).homeDirectory

#Make an Security object. Set the Owner to Domain Admins. Apply it to the Student Home Directory.
$OwnerAcl = New-Object System.Security.AccessControl.DirectorySecurity
$OwnerAcl.SetOwner([System.Security.Principal.NTAccount]'DOMAIN\Domain Admins')
(Get-Item $StudentHome).SetAccessControl($OwnerAcl)

#Get the Security settings for the Student Home Directory. Add Full Control for Domain Admins. Apply it.
$Acl = (Get-Item $StudentHome).GetAccessControl('Access')
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("DOMAIN\Domain Admins", 'FullControl','ContainerInherit,ObjectInherit', 'None', 'Allow')
$Acl.SetAccessRule($Ar)
Set-Acl -path $StudentHome -AclObject $Acl    

#Delete the Student Home Directory, and all contained folders.
Remove-Item -path $StudentHome -force -recurse
}

Existe alguma mudança óbvia / melhor maneira de fazer isso? Nós estaríamos fazendo isso para cerca de 300 usuários atualmente, e alterá-lo para rodar em mais ou menos 500 por ano.

Estamos em um domínio do Windows, principalmente em estações de trabalho do Windows 7, e todos esses usuários em particular usam o mesmo perfil Obrigatório. Todos os seus arquivos individuais são armazenados na rede, na sua pasta pessoal.

    
por TBFC 31.10.2017 / 17:08

0 respostas