【问题标题】:Exe name like update.exe blocked by UAC in scheduled task计划任务中 UAC 阻止的类似 update.exe 的 Exe 名称
【发布时间】:2011-01-14 09:35:15
【问题描述】:

我在使用 Windows UAC、计划任务和名为“dbupdate.exe”的可执行文件时遇到问题。我对源代码、清单等拥有完全的权力,但对用户系统没有权力(简称:普通软件工程师;-)。语言是 Delphi,但我认为应该不重要。

我在 windows vista 和 windows 7 的任务调度程序中使用应用程序时遇到问题。该程序名为 dbUpdate.exe。它内置了一个 xp/vista 清单,该清单配置程序应以“asInvoker”启动。

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

我在网上搜索了很多有用的东西。所以我在这里问

我是否必须创建一个特殊的清单才能在计划的作业中执行它? 或者有没有办法为计划的作业或我的可执行文件禁用 UAC?还是我真的必须选择另一个名字(然后它会起作用,就像前面提到的那样)并冒着客户和我的同事对此不太满意的风险?$

感谢您的帮助,问候

【问题讨论】:

  • 如果你把它命名为updatedb.exe或upd_task.exe,客户和同事会很不满意吗?听起来更像是你应该重命名它,把它写下来以弄清楚你什么时候有时间(一个 SO 问题对此有好处.. :P),然后继续解决重要问题。 (所以你已经成功了一半。)
  • 嗯,“转移到重要问题”的观点听起来不错 ;-) 但遗憾的是,“更新”这个词在我们公司非常普遍,并且对程序所做的事情很有意义.感谢您的回答

标签: windows-7 windows-vista uac job-scheduling


【解决方案1】:

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

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

【讨论】:

  • 您可以通过运行secpol.msc找到设置,然后转到本地策略→安全选项。
【解决方案2】:

在 Windows 7 中,名为“update.exe”的程序显然需要特权。它显然是 name,它只是那些古怪的 Microsoft 事物之一。将其重命名为“anythingUpdate.exe”将触发魔法违规;还有“UpdateAnything.exe”!

所以我将我的重命名为 up7.exe,现在微软很平静,没有争议。在 Vista 中似乎也发生了同样的事情。

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

【讨论】:

  • 所谓的Installer Detection 检查文件名是否包含关键字,如“安装”、“设置”、“更新”等(遗憾的是,他们甚至没有指定所有关键词)。但是@warheart 提到的requestedExecutionLevel 应该覆盖安装程序检测。
  • 我的更新程序现在命名为 *upda1e.exe。我也觉得根据名字来检测特征是相当愚蠢的,我想知道这个想法是谁带来的......
猜你喜欢
  • 2021-10-05
  • 2014-03-09
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-04
  • 2021-09-15
  • 1970-01-01
  • 2015-11-12
相关资源
最近更新 更多