从vista开始microsoft推出了UAC机制,就是User Account Control。开启UAC机制之后,windows默认通过explorer启动的程序都是运行在标准用户权限下面,而不是管理员用户权限。标准用户权限下会限制用户的诸多操作,最需要我们程序员关注的就是对于文件和注册表的访问,但是在windows xp下,所有的用户都是管理,很多程序在设计之初,就只考虑了程序是运行在管理员权限下,如果这些程序直接运行到vista以上版本系统下,就会出现兼容的文件。microsoft为了保持对于旧的应用程序的兼容性,在标准用户权限下的应用程序,操作系统关键的文件和注册表,会进行了虚拟化,实际上是一种重定向。
文件操作虚拟化:重定位的目录%LocalAppData%\VirtualStore,虚拟化目录有:%ProgramFiles%, %ProgramData%, %SystemRoot%
例如:C:\Windows\Application.ini 重定位到 C:\Users\Markruss\AppData\Local\VirtualStore\Windows\Application.ini


本文介绍了Windows Vista及更高版本中的User Account Control(UAC)机制,该机制通过虚拟化来实现对标准用户权限下文件和注册表操作的限制。在UAC下,操作系统会将关键文件和注册表操作重定向到特定的虚拟化路径,如%LocalAppData%VirtualStore。当程序安装或更新时,必须以管理员权限运行,否则会被虚拟化,可能导致安装失败。Windows能够识别安装程序并提示用户提升权限。开发者需要了解如何在UAC环境下适当地处理文件和注册表操作,以确保程序兼容性和正确运行。
最低0.47元/天 解锁文章
282

被折叠的 条评论
为什么被折叠?



