我在许多 Windows 2008 服务器上遇到以下问题。
0x80041323 任务计划程序无法为用户“NT AUTHORITY\System”在 TaskEngine“S-1-5-18:NT AUTHORITY\System:Service:”中启动任务“\Reporting”。用户操作:减少在指定用户上下文中运行的任务数量。
我在网上进行了大量研究,但未能找到可行的答案。
我发现一些信息建议增加注册表项中的值"TasksInMemoryQueue"
,我已经这样做了,但即使将其设置为很高也500
无济于事。设置此值后,我重新启动了服务器。
服务器确实运行了大量的计划任务,任何时候都可能有 150 个左右的计划任务在运行,但肯定不会有 500 个。计划任务都在用户下运行system
。
有人有什么想法吗?
答案1
尝试一下此处的链接http://technet.microsoft.com/en-us/library/dd315645(WS.10).aspx
解决
增加队列大小
通过修改 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Schedule\Configuration 下的 TasksInMemoryQueue 注册表项来增加任务队列配额。
警告:错误编辑注册表可能会损坏系统。在更改注册表之前,请备份有价值的数据。
若要执行此过程,您必须拥有管理员组成员身份,或者您必须被委派了适当的权限。
要修改 TasksInMemoryQueue 注册表项,请执行以下操作:
单击“开始”按钮,然后在“开始搜索”框中键入 regedit。
选择 Regedit.exe 程序以启动注册表编辑器。
展开此路径中的文件夹:HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Schedule\Configuration。
单击“配置”节点,右键单击“TasksInMemoryQueue”注册表项,然后选择“修改”。
修改该键的值,点击确定,默认值为64。
核实
要验证任务执行是否已成功完成:
单击“开始”按钮,然后在“开始搜索”框中键入任务计划程序。
选择任务计划程序来启动任务计划程序。
通过在任务文件夹层次结构中定位任务来选择要运行的任务。
在“操作”菜单上单击“运行”。您也可以在“操作”窗格中单击“运行”。
单击任务的“历史记录”选项卡,以验证其是否包含表明该任务已成功注册的事件。
相关管理信息
答案2
另一个可以尝试的方法是增加非交互式任务的堆大小。
可以修改
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems]
Windows 键包含一个长文本字符串。如果您找到 SharedSection,则它定义了系统、桌面和非交互式任务的堆大小。
因此如果你的 SharedSection 是
SharedSection=1024,20480,512
您可能希望将第三个值增加到更高的值,例如 2048。
这并不总是与任务数量有关,而是与每个任务所需的资源数量有关。在我的一台服务器上,10 个任务填满了非交互式内存池,因此前 9 个任务加载正常,但第 10 个任务会失败,直到分配更多内存。
第二种选择是交互运行任务。这意味着您必须设置一个帐户以自动登录到计算机并在启动时运行应用程序或脚本。
许多管理员由于各种原因不喜欢这种方法,但它确实有效。