首先,如果这个职位是重复删除configuration文件。
如果您有正确的链接,请将其张贴在下面或脚本本身。
问题:因为我有很多计算机使用Windows 7(2400系统)作为其操作系统,并且用户不断地将计算机从一台计算机更换或转移到另一台计算机,并且pipe理系统或C驱动器以获得一致的系统表演或释放空间是一项艰巨的任务。
我想有一个脚本,只会删除旧的(月数)configuration文件以及registry本身,但应保持当前configuration文件实例的registry也。
我在某个论坛上find了这个脚本,但是却没有正确的方法,因为它删除了所有的configuration文件,并排除了脚本中的pipe理员,pipe理员等,但我不能删除某个时间或date的旧configuration文件。
再次抱歉,如果这篇文章看起来像乱七八糟,但帮助表示赞赏
如果您的工作站已join域,并且您有权修改组策略,则所有这些都可以在GPO中指定;
计算机configuration| 政策| pipe理模板| 系统| 用户configuration文件
或者,你应该看看delprof2( https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/ ),这将做你所需要的。
这是一个命令行工具(所以你可以编写脚本),并且使用一个参数来指定一个configuration文件在符合删除条件之前的年龄。 例如,这个命令将删除60天以前的所有本地configuration文件;
delprof2 /d 60
它也有更多的用途,比如只删除漫游configuration文件的本地cachingconfiguration文件(忽略真正的本地configuration文件),远程删除configuration文件(这样你就可以编写脚本来运行服务器并依次定位每个工作站),模式匹配包含/排除,所以你可以告诉它忽略特定的configuration文件(例如,所有帐户以john *开头)。
在很多情况下也是免费的(我引用)
“Delprof2是免费供私人使用的,对于教育和非营利组织,所有其他组织也可以免费使用Delprof2,如果他们允许我们发布他们的名字,否则必须购买商业许可证。
这有帮助吗?
编辑:
看起来你似乎想要一个额外的选项,试试这个脚本或修改它。 我在这个论坛上发现它,并且完全没有经过testing。 使用风险自负。 您可能需要删除MsgBox行,并且可以通过更改variables“intMaxProfileAge”的值来调整未使用的时间段
On Error Resume Next Dim objFSO, objWMIService, strComputer, strFilter, intMaxProfileAge, colProfiles, objProfile, dtmLastUseTime strComputer = "." strFilter = "SID Like ""S-1-5-21%"" And Not LocalPath Like ""%Administrator%""" intMaxProfileAge = 14 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objWMIService = GetObject("Winmgmts:\\" & strComputer & "\root\cimv2") Set colProfiles = objWMIService.ExecQuery("Select * From Win32_UserProfile Where " & strFilter) If Not colProfiles Is Nothing Then For Each objProfile in colProfiles dtmLastUseTime = CDate(Mid(objProfile.LastUseTime, 7, 2) & "/" & Mid(objProfile.LastUseTime, 5, 2) & "/" & Left(objProfile.LastUseTime, 4) & " " & Mid (objProfile.LastUseTime, 9, 2) & ":" & Mid(objProfile.LastUseTime, 11, 2) & ":" & Mid(objProfile.LastUseTime, 13, 2)) MsgBox DateDiff("d", dtmLastUseTime, Date) If DateDiff("d", dtmLastUseTime, Date) > intMaxProfileAge Then Err.Clear objProfile.Delete_ If Err.Number = -2147024809 Then 'Profile in use, skipping. ElseIf Err.Number = -2147024751 Then objFSO.DeleteFolder objProfile.LocalPath, True ElseIf Err.Number <> 0 Then '"Error: " & Err.Number & ": " & Err.Description Else 'Profile Deleted. End If End If Next End If