我们在一所高中将 Windows XP 迁移到 Windows 7 后遇到了一个问题。计算机实验室的机器每天最多有 5-10 个不同的人登录机器。随着时间的推移,用户帐户的本地缓存会填满我们的小硬盘。我们没有钱升级,所以我们需要找到每月删除配置文件的方法。
过去我们曾使用过微软的 delprof,效果很好。问题是 delprof 不适用于 Windows 7。有人有办法从批处理/powershell 脚本中删除配置文件吗?如果您简单地删除文件,下次用户登录时就会出现错误。
提前致谢
答案1
wmic path win32_userprofile where special!=true delete
或使用必要的 WMI 调用的 VBScript/PowerShell 等效项。该special
参数是多余的,因为它将无法删除特殊配置文件(默认配置文件、NetworkService、LocalService 等)。如果您记录输出,它将减少噪音。
答案2
有了 PowerShell,我相信这会起作用。
$profiles = gwmi -class win32_UserProfile -filter "loaded='false'"
foreach ($prof in $profiles)
{
$prof.psbase.Delete()
}
由于没有可以使用的 Windows 7 或 Vista 机器,所以没有测试过。
答案3
如何使用 Windows 内置的方法而不是尝试编写脚本?只需使用以下设置创建组策略。
政策:系统重启时删除超过指定天数的用户配置文件
分类路径:计算机配置\管理模板\系统\用户配置文件\
支持:至少是 Microsoft Windows Vista
注册表项:HKLM\软件\策略\微软\Windows\系统
价值: 清理配置文件
此策略设置允许管理员在系统重新启动时自动删除在指定天数内未使用的用户配置文件。注意:一天被解释为访问特定用户配置文件后的 24 小时。
如果启用此策略设置,则用户配置文件服务将在下次系统重新启动时自动删除计算机上在指定天数内未使用的所有用户配置文件。
如果禁用或未配置此策略设置,用户配置文件服务将不会在下次系统重启时自动删除任何配置文件。
答案4
Helge Klein 的 Delprof2 是一款出色的删除用户配置文件的工具。我在 Windows 7 上尝试过,它也删除了注册表中的那些用户配置文件设置。Delprof2 使用起来非常简单。谢谢 Helge Klein。