windows - 脚本未从 Windows Server 2012 R2 上的任务计划程序运行
问题描述
我有一个 Python 脚本,需要每晚在多台服务器上运行。我设置了一个在 Windows Server 2008 上运行但不在 Windows Server 2012 R2 上运行的计划任务。最初,它以我自己的身份运行,但在 2012R2 上,它仅在我登录时运行。我尝试以域管理员用户和本地 SYSTEM 帐户的身份运行,但没有运气。我已经尝试设置 C:\Temp 的起始路径并将其保留为黑色。我试过以最高权限运行。这是我最近测试的导出任务。
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2018-04-17T13:29:35.5882266</Date>
<Author>SYSTEM</Author>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<StartBoundary>2018-04-17T07:22:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-18</UserId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>C:\Python27\python.exe</Command>
<Arguments>-m ecs_capacity</Arguments>
<WorkingDirectory>C:\Temp</WorkingDirectory>
</Exec>
</Actions>
</Task>
在未登录的情况下运行此命令会导致:
Task Scheduler successfully completed task "\ECS Capacity Reports (ADM)" , instance "{168f0587-2c93-49c5-9913-a70d70346630}" , action "C:\Python27\python.exe" with return code 2147942401.
我已经看过的东西:
- 无论用户是否登录,都从 Windows 任务计划程序运行批处理文件建议不使用映射驱动器,但我只访问 C: 驱动器。
- 无法从本地服务帐户运行 Windows Server 2012 R2 中的计划任务建议以管理员身份运行该任务;使用我的个人管理员帐户也仅在登录时有效。此外,我需要使用智能卡以管理员身份登录,因此尝试保存我的凭据不起作用。(我可以“签出”密码,但只能使用 24 小时。)
- windows server 2012 task scheduler file not found (0x80070002)列出了确切的症状,但从未得到解答。
解决方案
我从来没有找到答案,所以我硬着头皮把我的脚本移到可以使用 cron 的 Linux 服务器上。对不起,微软。
推荐阅读
- asp.net-core - 小编辑器在 Bootstrap 弹出窗口关闭时不显示
- python - 每连续天按 id 分组
- python - 尝试使用 discord.py 制作老虎机机器人
- c# - netcoreapp3.1 包是否与 net5.0 兼容?
- vba - 在 VBA 中动态更新和显示 TextBox 或 Label 的内容
- kubernetes - k8s 中的 pods\containers 是否有默认内存请求和\或限制?
- glsl - 如何在 GLSL 中使用 Vulkan SPIR-V 数据格式
- firebase - FlutterFirebaseCorePlugin.java 使用或覆盖已弃用的 API
- java - MapStruct 转换错误不兼容类型:无法转换为
- survival-analysis - 精算与预测生存比较