通过 Powershell 删除用户主目录/设置权限

通过 Powershell 删除用户主目录/设置权限

我们有大量用户不再在该组织工作,我们目前正在研究删除他们的主驱动器的最佳方法。

不幸的是,某些系统创建的文件夹(下载、文档、音乐……)的文件权限存在问题,这意味着当我们手动执行这些操作时,我们需要在顶层将域管理员设置为所有者,替换下层设置,然后授予域管理员完全控制权,然后才能删除文件夹。我们无法应用于包含文件夹,因为同一区域中也有当前用户。

我尝试创建一个脚本(如下所示)来对帐户所在的 OU 中的每个用户执行所有这些操作。运行该脚本后,第一个用户之后便无法继续,并且导致服务器拒绝用户和管理员浏览共享的任何尝试,尽管文件权限未受影响。重新启动服务器解决了这个问题,但我对自己进行进一步更改的任何尝试持谨慎态度。

$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 工作站,所有这些特定用户都使用相同的强制配置文件。他们所有的个人文件都存储在网络上的主文件夹中。

相关内容