2010-02-08 49 views
7

我对Windows UAC,计划任务和名为“dbupdate.exe”的可执行文件有问题。我对源代码,清单等有全面的权力,但不能超越用户系统(简称:普通软件工程师;-)。语言是德尔福,但我认为不应该很重要。Exe名称像UEC在计划任务中阻止的update.exe

我在使用Windows Vista和Windows 7中的任务计划程序中的应用程序时出现问题。程序名为dbUpdate.exe。它内置了一个xp/vista清单,用于配置该程序应该启动“asInvoker”。

现在,在Vista和Windows 7中,我可以启动程序没有任何问题,但我必须登录到系统。如果我没有登录,程序不会执行(我使用Windows任务调度程序,但我知道其他调度程序也存在问题)。但是:如果我将程序重命名为“dbBlaBla.exe”,它将被执行。让我明白,UAC安装程序检测认为我的程序是一个安装程序(它不是,但我知道它看起来像更新,设置等文件名)。

我搜索了网页,找不到很多有用的东西。所以我在这里问

我是否必须创建一个特殊的清单,以便能够在预定的工作中执行它? 或者有没有一种方法来禁用UAC的计划任务或只为我的可执行文件?还是我真的要选择另一个名称(然后它会工作,像前面提到的),并承担风险的的costumers和我的同事都没有对此很满意?$

感谢您的帮助,问候

+0

如果您将其命名为updatedb.exe或upd_task.exe,客户和同事会很不满意?听起来更像是你应该重新命名它,写下来找出你有没有时间(一个SO问题对那个有用...... P),然后继续处理重要的问题。 (所以你已经到了一半。) – 2010-02-08 14:40:17

+0

那么,“转移到重要问题”听起来不错;-)但不幸的是,这是一个事实,“更新”这个词在我们公司非常普遍,并且对于程序呢。 感谢您的回答 – warheart 2010-02-08 15:14:57

回答

6

在Windows 7中,名为“update.exe”的程序显然要求特权。这显然是名称,它只是这些古怪的微软事情之一。将它重命名为“anythingUpdate.exe”会触发魔法违规; “UpdateAnything.exe”也!

因此,我将我的程序改名为up7.exe,现在微软很冷静而且无所事事。 Vista中似乎也会发生同样的事情。

所以“updatedb.exe”不起作用; “upd_task.exe”将...

+1

所谓的[安装程序检测](http://msdn.microsoft.com/en-us/library/windows/desktop/bb756960.aspx)检查文件名_contains_关键字是否像“安装”,“设置,“更新”等(可惜他们甚至没有指定所有关键字)。但@warheart提到的'requestedExecutionLevel'应该覆盖安装程序检测。 – marcin 2012-12-11 22:33:18

+0

我的更新程序现在被命名为* upda1e.exe。我也觉得根据名称来检测功能是相当愚蠢的,我不知道是谁来的那个想法...... – nulleight 2017-02-21 12:28:46

1

http://social.msdn.microsoft.com/Forums/en-US/windowscompatibility/thread/1b316a7f-852e-4a71-89d3-090e45990f98

用户帐户控制:检测应用程序安装并提示提升设置必须与安装程序检测启用检测安装程序。此设置默认情况下处于启用状态,可以使用安全策略管理器管理单元(secpol.msc)或组策略(gpedit.msc)进行配置。

+0

你可以通过运行'secpol.msc'找到设置,然后进入本地策略→安全选项。 – 2012-12-15 05:18:17