У нас большое количество пользователей, которых больше нет в организации, и в настоящее время мы изучаем лучший способ удаления их домашних дисков.

К сожалению, были проблемы с правами доступа к файлам в некоторых системных папках («Загрузки», «Документы», «Музыка»), что означает, что когда мы выполняем их вручную, нам нужно назначить администраторов домена в качестве владельца на верхнем уровне, заменить нижние настройками, затем предоставьте администраторам домена полный контроль, прежде чем мы сможем удалить папки. Мы не можем подать заявку на содержащую папку, так как в этой области также есть текущие пользователи.

Я попытался создать скрипт (ниже), чтобы сделать все это для каждого пользователя в подразделении, в котором содержатся учетные записи. Запуск, который не продвинулся дальше первого пользователя, и заставил сервер отклонять любые попытки перемещаться по общим ресурсам, как пользователями, так и администраторами, хотя права доступа к файлам не были затронуты. Перезагрузка сервера решила это, но я опасаюсь любой попытки внести дальнейшие изменения самостоятельно.

$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
}

Есть ли очевидное изменение / лучший способ сделать это? В настоящее время мы будем делать это примерно для 300 пользователей и вносить поправки для работы еще примерно на 500 в год.

Мы находимся в домене Windows, в основном на рабочих станциях Windows 7, и все эти пользователи используют один и тот же обязательный профиль. Все их отдельные файлы хранятся в сети, в их домашней папке.

0