在使用Windows Vista后我一直头疼一个问题,安装Vista的分区的可用空间总是不够用。我安装Vista的分区一共有30GB,按理说应该够用了,可因为使用了脱机文件功能,而脱机文件的缓存就保存在系统盘,所以经常被脱机文件搞得系统盘空间紧张。我仔细查看了各种系统选项,包括GUI上的选项、组策略、注册表,还有Vista自带的命令行工具,不过都没有找到合适的办法。同时在网上也搜索了很久,功夫不负有心人,终于找到了。没想到,当时自己考虑的那么复杂,原来竟然用轻松传送给搞定了。
如果你也遇到了类似的问题,希望这篇文章对你有用。
很多客户询问我们怎样更改脱机文件缓存的默认保存位置(c:windowscsc)到其他卷,方法是这样的。
- 在管理员权限的命令提示行窗口中运行下列命令(译注:下面所有内容是一行完整的命令):
REG ADD "HKLMSystemCurrentControlSetServicesCSCParameters" /v MigrationParameters /t REG_DWord /d 1 /f - 使用本地管理员帐户运行下列命令,如果需要,按照实际情况替换其中的分区盘符:
c:windowssystem32migwizmigwiz.exe - 在Windows轻松传送向导中,依次选择下列选项:
a. 单击启动新的传输。
b. 单击我的旧计算机。
c. 单击使用CD、DVD或其他可移动介质。
d. 单击外接硬盘或网络位置。
e. 输入你希望Savedata.mig保存的位置,然后单击下一步。
f. 单击高级选项。
g. 在选择要传送的用户帐户、文件和设置页面上,进行下列操作:
i. 反选所有选中的复选框。
ii.在系统和程序设置(所有用户)选项下,展开Windows设置,展开网络和Internet,然后选择脱机文件。
iii.;为本页上列出的每个用户重复这一操作。
h. 单击下一步开始传输。 - 在注册表的HKLMSystemCurrentControlSetServicesCSCParameters 键下新建一个名为CacheLocation的字符串值,然后将其数值设置为你希望缓存保存位置对应的NT格式名(NT format name)。例如,如果你希望缓存保存在d:csc目录下,就输入??d:csc。
创建d:csc目录(或者其他你指定的目录)。 - 重启动计算机。
- 运行c:windowssystem32migwizmigwiz.exe,然后在向导中依次进行下列操作:
a. 单击继续正在进行的传输。
b. 单击否,我已将文件和设置复制到CD、DVD或其他可移动介质中。
c. 单击在外接硬盘或网络位置上。
d. 输入之前第三步创建的.mig文件的路径。
e. 将旧计算机和新计算机上的用户帐户一一对应。
f. 单击下一步,然后单击传输。 - 注销,重新登录,然后确认你是否可以正确访问脱机文件。
删除老的缓存
假设上面的操作完全正确,那么你就可以管理员权限的命令提示行窗口中删除老的缓存:
takeown /r /f c:windowscsc
rd /s c:windowscsc
利用这种方法删除老的脱机文件缓存的不足之处在于,Takeown.exe最多只能处理长度不超过260个字符的路径。如果要处理的路径长度超过了,takeown命令将会失败。为了避免这种问题,另一种建议的方法是首先按照上面第四步的方法重新将脱机文件的缓存移动回默认位置,设置一个注册表键清空缓存,然后重启动系统,然后再移动缓存的位置。方法是这样的:
- 根据上文移动缓存操作的第四步可以知道,在HKLMSystemCurrentControlSetServicesCSCParameters下已经存在了一个名为CacheLocation的字符串值,将该值的数值重新改为老缓存位置对应的NT格式名称。例如,如果老缓存的位置是c:windowscsc,那么就修改为??c:windowscsc。
- 重启动计算机。
- 在注册表HKLMSystemCurrentControlSetServicesCSCParameters键下,新建一个名为FormatDatabase的DWORD值,将其数值设置为1。
- 重启动计算机(然后使用本地管理员帐户登录,这样才不会引起文件夹重定向。除了这种方法,你也可以在登录前断开网络)。
- 接着重新将CacheLocation值的数值修改为上面第四步中指定的新位置。
- 重启动计算机。
标签: