我需要标准或受限的 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 之类的工具才能查看或修改该资源。