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

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

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SZDomain\itvc1]

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

[HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\SZDomain\itvc1]


[HKEY_USERS\S-1-5-21-3071037507-3784486840-4086376621-1017\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\SZDomain\itvc1]

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

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

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

----

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

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

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

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

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

和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虚拟化】这一列,这一列的值 主要有:启用 停用 和不允许三种。

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

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

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

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

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

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

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

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

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

上一篇:gentoo ebuild 私人portage


下一篇:高DPI下界面错乱的解决方法和原理