取消 virtualStore 注册表[启用和禁止 UAC虚拟化]

近日发现,在win2008R2 x64下运行的服务器程序,其注册表读取路径为:


[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeSZDomainitvc1]

但是经过程序自动修改的注册表,被自动重定向到了:


[HKEY_CURRENT_USERSoftwareClassesVirtualStoreMACHINESOFTWAREWow6432NodeSZDomainitvc1]


[HKEY_USERSS-1-5-21-3071037507-3784486840-4086376621-1017SoftwareClassesVirtualStoreMACHINESOFTWAREWow6432NodeSZDomainitvc1]

上面两个位置应该是映射关系。

百度VirtualStore,发现这是 UAC虚拟化 ,从Vista系统开始,到win7 win8 win10 都有这种技术。

自己写的程序 再用这个 就有点烦了,对于流氓软件,倒是挺好,相当于运行在 沙箱 sandboxie 中。

----

Win7 64位系统下怎么启用和查看UAC虚拟化进程【图解】

第一步 运行windows 组策略 gpedit.msc

第二步 找到 “本地计算机——Windows设置——安全设置——本地策略——安全选项”;

把 用户账户控制:将文件及注册表写入失败虚拟化到每用户位置 的选项设置为已禁用 。

和UAC编程相关的内容:

-------------------------------

参考《windows Vista下编写安全的代码》 


把下面的东西编译进资源就行了
uac.manifest

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <assemblyIdentity
     name="naily.pdbm.exe"
     processorArchitecture="x86"
     version="5.1.0.0"
     type="win32"/>
   <description>NAILY Soft</description>
   <dependency>
     <dependentAssembly>
       <assemblyIdentity
         type="win32"
         name="Microsoft.Windows.Common-Controls"
         version="6.0.0.0"
         processorArchitecture="x86"
         publicKeyToken="6595b64144ccf1df"
         language="*"/>
     </dependentAssembly>
   </dependency>
   <!-- Identify the application security requirements. -->

   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
     <security>
       <requestedPrivileges>
         <requestedExecutionLevel
           level="asInvoker"
           uiAccess="false"/>
       </requestedPrivileges>
     </security>
   </trustInfo>
 </assembly>

那么又有新问题了,如何使用UAC虚拟化

=========================

查看UAC虚拟化的方式是:打开任务管理器,查看 【UAC虚拟化】这一列,这一列的值 主要有:启用 停用 和不允许三种。

如何在gpedit.msc开启可使用UAC虚拟化选项,的前提下,禁止使用UAC呢?

默认是打开UAC控制的。我的电脑把它设置为 从不通知,从任务管理器中查看,所有的进程 都是 UAC虚拟化 =》 【不允许】。

关闭UAC控制,意味着所有程序都是管理员权限,才会不允许UAC控制的。

所以想要 禁止某个程序使用UAC也可以 【使用管理员权限打开】。

如果开启UAC的情况下,没有使用管理员权限打开,才会出现 默认都是UAC虚拟化的。

原文地址:https://www.cnblogs.com/ayanmw/p/5129658.html