迁移Windows 7 profile目录

前面说过,我这个人对于电脑有点儿强迫症。现在我的windows 7是装在一个虚拟硬盘上的,所以我就很在意虚拟硬盘的剩余空间。所以我一直对user profile里面的一坨一坨的临时文件啊什么的很感兴趣。以前用XP的时候,我都是用nlite自己做系统,把profile全部定向到另外一个目录。但是win7出来之后一直没机会做。

早上无事,想象win7的junction应该还是不错的,应该可以用来重定向我的profile目录吧。于是就试了一下,我的打算是,先用另外一个用户登录,然后把我的原来的用户的profile下的东西全部挪开,建立junction (因为NTFS建junction的时候必须得这个目录不存在才行(好像linux的mount不存在这个问题,会直接override已有的目录内容,这一点还是先进一些吧),然后把profile所有文件再移到junction所指的真实位置)。想法很不错,结果实现的时候出现了问题。首先挪开文件就做不到,我试着rename,结果告诉我某个文件被占用,没法挪,在unlocker的帮助之下重启之后才搞定。然后建立junction,没有任何问题,挪文件时又出现了问题,explorer里复制总是有文件不让复制,那好吧,就用robocopy把,结果发现profile里面有一坨的junction。一开始没有注意,直到发现我的robocopy陷入死循环的时候才意识到丫把junction展开了,恰好这里面有一个循环链接(不知道设计的时候哪个白痴搞出来的)。

于是我的目录下面多了一个几十层的“application data”目录,删也删不掉,因为windows会告诉你文件路径太长,操,太长你丫怎么创建的啊。无奈之下写个脚本,把每一级的application data都rename成a,恩,这下子好了,删掉了。

然而又有个问题,我发现我无法完美复制我的profile目录!robocopy缺省会把junction展开,他有一个option可以exclude junction,但是这样以来我就无法复制junction了。本来也没什么,大不了我自己手工写个脚本创建所有的junction就算了。但是我发现我甚至没有办法search一个目录下面所有的junction point。DIR居然不支持junction这种type,无语了。

折腾再三,最后放弃了。组后的解决方案就是把profileroot给改了,这样所有的用户都被挪了,幸好我就一个用户。这一点上windows 7还是要比xp好一些,因为系统用户的profile都不是在这个profile root下面的,所以我这样改了之后对于什么system,network,service用户没有任何影响,default用户的路径我就没有改了,省的到时候出问题了连新用户都创建不了。

最后不得不说,从使用脚本的角度来看,windows比linux还是差很远啊。

Advertisements
This entry was posted in 计算机与 Internet. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s