当服务器 2008 上的用户配置文件损坏时,删除该配置文件会出现问题,我们已通过关闭进程成功解决了该问题,但它会终止服务器并强制重新启动,但这还不算太糟,因为我们正在测试这台服务器,并且只有 2 个用户在线。
有没有通过脚本安全/快速地完成此操作的方法?
答案1
ntuser.dat
是一个注册表配置单元文件,其中包含与配置文件关联的注册表项。内核本身打开了该文件;必须卸载配置单元才能解锁该文件。您可以使用 强制卸载它reg unload
,但您需要拥有配置文件的用户的 SID。还有一个相关的“类”配置单元,HKEY_CLASSES_ROOT
每个配置文件都会展开。
reg unload HKEY_USERS\S-1-5-21-1555713158-3015222722-1959872020-2924
reg unload HKEY_USERS\S-1-5-21-1555713158-3015222722-1959872020-2924_Classes
这适用于自 XP 以来的所有 Windows 版本,并且在所有以前的 WinNT 版本中也存在类似情况。
一般来说,最好让 Windows 自行卸载配置文件,通过删除对它的打开的引用。
答案2
您可以在 Powershell 中执行以下操作:
get-wmiobject win32_userprofile -filter "localpath='c:\\users\\BadProfile'" -computer MyServer | remove-wmiobject
这应该可以帮你搞定。显然,将“BadProfile”替换为用户的用户名,将 MyServer 替换为你的服务器名称。-computer
如果需要,该开关可让你远程执行此操作。如果你使用的是本地配置文件,则可以省略该开关。