Microsoft 的Vista号称加入了众多安全特性。
其中的UAC(User Account Control) 保证了恶意程序,或者用户非自愿的程序不被运行。同时,也把所有程序默认运行在Standard Account 权限。任何提升权限至Administrator Account 都需要用户许可。
除了UCA,Vista还加入了一个奇特,但是的确有用的特性,Data Redirect (数据重定向)。这个特性对广大原本健康运行在XP,2000等平台的各种程序不可不谓是一场小小的大灾难。 既然小小,又何来的大字?别急,听我慢慢道来~
Data Redirect 又名 Data Virtualization。说来有意思,Data Redirect其实是为了兼容XP,2000的一个特性。在Vista中,一般程序都只具备Standard Account权限(除非特别指定Administrator Account。下文将述),无论你是否以Administrator Account登录系统。而任何Standard Account权限,被禁止写入包括 HKEY_LOCAL_MACHINE/Software %ProgramFiles% %System32% 类似系统敏感区域。哦,这真是一个灾难,你的XP,2000平台下的应用程序,哪里会记得加入权限问题!?就像Microsoft说得那样,你要写一个位于Program Files/Your App / 下的一个log,来记录程序的轨迹,简直变得繁琐无比。难道需要用户设置每一个程序的权限?在这样一个两难的问题下,Data Redirect诞生了!当Data Redirect 系统驱动收到写入失败的消息时,Data Redirect 就会将将写入重定向到虚拟存储地。YourAccountName/Local/VirtualStore/Program Files/Your App
俗话说,一波未平,一波又起。这个看似全然没有破绽的特性,在解决了一个兼容性问题的同时,却又带来了一个问题。尽管程序本身被放置在Data Redirect 黑匣子中,全然不会有文件访问不到的问题,可是,明显,没有考虑到用户对这些文件的访问。诚然,用户不在乎log这样的文件。但是对于类似eMule这样的程序,默认在Program files中放置下载完成的文件。对此,用户会奇怪的发现,尽管eMule显示一切ok,可是用户却无法访问这些数据文件,很简单,这些文件根本就不在那里啊!这对许多Vista的尝鲜者又是多么大的困惑,如此的灾难啊!? 可是,只要简单的设置程序为Run As Administrator,这一切只不过是小小的插曲罢了。
好一个小小的大灾难!
如何Run As Administrator?
右键点击程序,选择Compatibility 标签,确定勾选Run this program as an administrator ,点击确认。