有什么方法可以强制通常需要管理员权限(通过 UAC)的程序在没有管理员权限的情况下运行?(即:没有 UAC 提示和没有系统范围的访问权限。)
补充:不修改可执行文件本身。
尽管詹姆斯给出了答案,但我发现了几种几乎可以做到的方法:
trustInfo从清单(或整个清单,因此我可以使用外部清单)中删除条目,从而允许程序在没有 UAC 的情况下启动。不幸的是,这会修改可执行文件,因此由于内部校验和测试,它很快就会退出。Windows 是否有“自动拒绝提升请求”列表?
如果用户是“标准用户”,则可以通过将组策略设置更改为自动拒绝提升请求来让 Windows自动拒绝任何提升请求:ConsentPromptBehaviorUser
Prompt for credentials on the secure desktop.(默认)当操作需要提升权限时,安全桌面上会提示用户输入不同的用户名和密码。如果用户输入有效凭据,操作将继续使用适用的权限Prompt for credentials当操作需要提升权限时,系统会提示用户输入管理用户名和密码。如果用户输入有效凭据,操作将继续使用适用的权限Automatically deny elevation requests当操作需要提升权限时,会显示可配置的拒绝访问错误消息。以标准用户身份运行桌面的企业可以选择此设置以减少帮助台呼叫这在程序可能会提示提升的情况下很有用,但这需要帮助台的人运行三座建筑物(输入他们的过肩凭证)。只有到了那里,他们才发现用户不应该运行该程序。
我们希望应用程序以标准用户身份运行(可能会出现拒绝访问错误),因为这是正确的答案。
但该设置适用于所有提升的程序。是否有可能
以便自动拒绝提升请求,并以标准用户身份运行?
当程序错误时会出现问题:
requestedExecutionLevel的requireAdministrator在其嵌入或外部清单install或setup)EnableInstallerDetection注意: 假设应用程序没有清单,人们可能会建议添加一个清单,指示requestedExecutionLevel: asInvoker. 此解决方案还将禁用应用程序的文件和注册表虚拟化。
可能的重复:
防止不需要的应用程序提升 (UAC)
我正在使用在 Windows Vista/Windows 7 之前编写的应用程序。Windows 已决定该应用程序需要以管理员身份运行(即,它具有盾牌图标)。我很确定该应用程序的清单中没有任何内容表明它需要以提升的权限运行(它是在 Windows Vista 之前编写的)。
有什么方法可以告诉 Windows 特定应用程序不需要提升权限?
我刚刚在 32 位 Vista 上安装了一个在我看来不需要管理员权限的程序。它没有安装在系统目录中,其用途显然不需要任何特殊权限。但是,.exe 上有一个 UAC 防护罩,它要求我在执行后立即提升权限。
我准备冒着用我的用户帐户的权限做令人讨厌的事情的风险,但不准备冒提升它的风险。除了为它设置虚拟机(或下载源代码并自己编译)之外,我还能做些什么吗?
(FWIW,有问题的程序是 Pencil - pencil.evolus.vn/en-US/Downloads/Application.aspx - 但我对一般答案比特定于应用程序的答案更感兴趣)。
我正在使用这个
start /b C:\wamp\wampmanager.exe
Run Code Online (Sandbox Code Playgroud)
命令在我的 Windows 中启动程序(Windows 7 Ultimate - 64 位)。
但是然后程序想要运行的权限
Do you want to allow the following program from an unknown publisher make changes to this computer
Run Code Online (Sandbox Code Playgroud)
有什么方法可以授予此权限,as a parameter to the star command或者using another command
让程序以此权限启动而不询问。