需要UAC保护资源的整个列表以标准用户身份运行我的应用程序(未提升)

时间:2014-08-21 07:49:33

标签: c# .net windows vb6 uac

关于升级我的VB6应用程序以作为标准用户运行而不是总是需要提升权限,我发现很难找出我需要的VB6遗留应用程序(exe)的所有位变化

目前,我对“保护资源”的理解是什么?就UAC而言如下:

在注册表中,您无法访问HK_LocalMachine(本地计算机),而必须使用HK_CurrentUser,因为HK LocalMachine需要提升权限且CurrentUser不需要。

在档案&文件夹部分,我知道我无法访问Windows目录(C:\ Windows)或其任何子文件夹,因为这包括程序文件目录(C:\ Program Files)是受保护资源&需要提升,所以我们要使用不需要提升的ProgramData文件夹。

另外,我认为某些程序需要提升才能运行它们,例如事件查看器?是否有需要提升的所有程序列表才能运行?那些在cmd.exe控制台中运行的程序呢?

现在,我甚至不确定我是否使用了术语"受保护资源"是正确的,因为当我做了几种不同类型的谷歌搜索时,我找不到其他我不了解的保护资源。基本上,我需要知道所有其他的"受保护的资源"因此我知道我的VB6应用程序的哪些部分需要更改,以便我负责任地在用户计算机上运行我的应用程序(不需要提升)。

因为我无法在Vista及以上版本中找到受UAC限制的所有受保护资源的列表,所以我不知道我的VB6 EXE的哪些部分需要更改。这基本上是我的问题。目前,我知道我需要更改的唯一内容是上面列出的项目:在注册表中,使用CurrentUser而不是LocalMachine,在FileSystem中,使用ProgramData而不是%WinDir%和%ProgramFiles%。什么是黑名单目录?

基本上,搜索所有受保护资源的列表在Google上没有返回任何内容,有人可以指示我到某个网站,在那里我可以获得所有需要提升的项目的完整列表才能工作吗?这样,我可以在重新编码VB6 EXE时使用替代方法,这样人们就可以在不给它管理权限的情况下运行我的应用程序了吗?

此外,这些"保护资源"在Vista,Windows 7和Windows 8 / 8.1之间,如果需要或者你认为合适,我知道的越多越好。

此外,我不可能重新测试应用程序的每个部分,以查看它是否停止工作,因为该应用程序有太多不同的部分,并且代码长达20,000行。我需要一份正确概述这一内容的文件,以便我可以进入并更改需要更改的内容,而不是尝试进行试用。错误。

非常感谢你!

更新/编辑/概述:

以下是我认为有用的项目。我知道包含受保护资源的四(4)个类别,它们是:注册表,文件系统文件夹,使用Windows和Windows API安装的应用程序。

1)。如果有其他类别或类别可能包含受保护资源,请随时列出它们。 2)。受保护的注册表对象的注册表项列表&需要提升才能访问。 3)。受保护文件夹的文件夹列表&需要提升才能访问。 4)。受保护的应用程序并要求提升运行的Windows应用程序列表。 5)。 Windows API的列表,它们是受保护的API,需要提升才能使用。

1 个答案:

答案 0 :(得分:2)

当您的应用程序在普通LUA环境中运行时,您通常只能访问该用户的配置文件。 这包括:

  1. 他们的个人资料文件夹:C:\Users\[username]\
  2. 他们的注册表配置单元:HKEY_CURRENT_USER
  3. 通过扩展,任何仅适用于该用户的设置或更改都可以在不升级的情况下进行。

    除此之外的任何内容都是无法访问或只是只读,包括(但不限于):

    1. 全局设置
    2. 系统注册表配置单元:HKEY_LOCAL_MACHINE
    3. 系统文件夹:C:\Windows\C:\Program Files\C:\ProgramData\(除非明确允许)
    4. 其他用户的个人资料
    5. 原始硬件访问
    6. 隔壁的狗
    7. 核导弹发射编码
    8. 进一步阅读:

      1. Windows Vista Application Development Requirements for User Account Control (UAC)
      2. Windows Vista Application Development Requirements for User Account Control Compatibility(更长篇文章)
相关问题