当用户登录时,我使用启动提升的管理员程序。该技术以本文为基础:
http://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html
注意:提升的管理员程序是一个自动化的测试程序,它需要作为管理员运行来安装程序和运行各种测试。有些测试需要管理员权限和对桌面的访问。
该任务被配置为以高于正常优先级的方式运行,如本文所述:
在Windows、Windows 7和Windows 2008上,一切都很好。
在Windows 8和Windows 2012上,测试程序的性能非常糟糕,通常运行时间要长5-10倍。CPU使用率和磁盘I/O都很高。Process (http://processhacker.sourceforge.net/)显示I/O优先级是正常的,页面优先级是正常的。
只有当测试程序在登录期间由任务调度程序运行时,才会出现性能低下的情况。如果我停止测试程序并通过手动运行任务调度器任务重新启动它,则恢复正常性能。
下面是测试程序的缩减版本中的一些数字:
任何帮助都将不胜感激。
发布于 2014-03-30 13:21:34
我想我有办法解决这个问题。看起来,Windows 8和Windows 2012上的计划任务的行为取决于任务何时相对于登录序列启动。
我的测试任务被延迟了。任务在登录序列的早期启动,暂停60秒,然后开始测试运行。尝试了各种延迟,但在所有情况下,Windows 8和Windows 2012的性能都很差。注意:测试任务是在几乎干净的Windows安装中运行的,因此60秒足够通过登录序列。
我更改了Test以删除内置延迟,而是使用任务调度程序的启动延迟功能。在Windows 8和Windows 2012上,测试任务配置为登录后60秒开始。此更改后,测试任务将正常运行。
我已经在MSFT的文档中找到了对这种行为的解释,但到目前为止我还是空白。
我非常感谢“charleswj81 81”、“MDMarra”和“Daniel Goldberg”。你的评论帮助我从不同的角度看待这个问题,并最终找到了一份工作。
https://serverfault.com/questions/583862
复制相似问题