允许标准用户运行需要 UAC 提升的程序

允许标准用户运行需要 UAC 提升的程序

我需要标准或受限的 Windows 7 用户才能运行需要 UAC 提升的应用程序(Fallout Mod Manager)。我尝试过应用程序兼容性工具包,但没有按预期工作。有什么建议吗?我正在本地运行 Windows 7 Ultimate,因此可以应用策略。

我基本上想要一些类似 unix 的 setuid 标志的东西。

答案1

这是可行的,但并不容易解释。

应用程序在启动时请求提升权限只有三个原因:

  • 兼容性选项卡上有“以管理员身份运行此程序”
  • 应用程序有一个清单(嵌入式或外部),其中指定requireAdministrator
  • Microsoft 提供了兼容性更新,将其标记为需要管理员

假设您已经检查了兼容性选项卡,并且应用程序不是设置为需要管理员:

在此处输入图片描述

下一步是检查嵌入的资源清单。我不会详细介绍如何找到它。但请跳过此步骤,自己创建一个清单。

在与 Fallout Mod Manager 相同的目录中创建一个文件(我不知道它exe叫什么,但我会称之为FalloutModManager.exe

FalloutModManager.exe FalloutModManager.exe.manifest

你创建的新manifest文件是一个简单的文本文件,包含 xml,其中有一个清单条目,表明我们要启动作为调用者, 而不是需要管理员

FalloutModManager.exe.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
   <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
      <assemblyIdentity 
           version="1.0.0.0"
           processorArchitecture="X86"
           name="client"
           type="win32" /> 

      <description>Poorly written Fallout Mod Manager fails on XP as standard user</description> 

      <!-- Disable file and registry virtualization, and don't require elevation -->
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
         <security>
            <requestedPrivileges>
               <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
            </requestedPrivileges>
         </security>
      </trustInfo>
</assembly>

有这个文件旁边你的可执行文件被称为“外部清单“。可执行文件也可能包含嵌入资源,您需要使用 Resource Hacker 之类的工具才能查看或修改该资源。

相关内容