我在 Windows Server 2012 机器上有一个网络共享,用于存储所有用户配置文件(我的文档、桌面等)。
有数百个老用户我需要摆脱,我将一个一个地检查它们......首先让管理员成为一个用户的所有文件的所有者......然后完全控制该用户的所有文件文件给管理员...然后删除该用户的文件...然后转到下一个用户。
这需要几天时间。
有许多有效/当前用户文件,我也不想成为同一目录中的所有者或删除它们。
有没有更省时的方法来删除此网络共享中的特定文件夹?
我可以在所有老用户中输入某种脚本,让它在几个小时内完成它的工作?
当然,使用 PowerShell 一切皆有可能!:-) 这是如何做到这一点的一个整体过程。
您可以首先使用命令从 CSV 文件中读取要删除的顶级文件夹/用户
Import-CSV $Filename | ForEach-Object
。对于每个顶级文件夹,在 ForEach 块中,您可以读取所有子文件夹和文件
Get-ChildItem -Recurse
。然后,您可以拥有第二个 CSV 文件,其中包含不应删除的文件或文件夹,并且对于您循环访问的每个文件,您可以读取并与该文件进行比较,如果它应该被保存或删除(在获得所有权之后)。
我不得不再次这样做,所以今天根据@PatrikN 的建议重新访问了这个,这是我使用的 powershell 脚本:
我最终没有使用 CSV 文件。
该脚本遍历所有用户配置文件目录,查询该名称是否在活动目录中,如果不是:获取所有权,设置完全权限,然后删除。它运作良好。