首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >windows调度任务无法在启动时成功运行。

windows调度任务无法在启动时成功运行。
EN

Stack Overflow用户
提问于 2018-01-10 14:18:50
回答 2查看 999关注 0票数 1

在系统启动时,我使用脚本创建一个windows计划任务,在提升模式下调用powershell脚本来运行windows更新,方法是在系统启动时(一个工具可以自动继续运行代码,甚至在执行过程中会重新启动)。但不知道为什么,任务可以在启动后调用,但什么也没有做。如果我在任务管理器中手动启动计划任务,它将按预期运行。

注册计划任务的脚本:

代码语言:javascript
复制
$TaskActionArgument ="-noprofile -command "&{start-process powershell -argumentList '-File C:\users\administrator\updatescript\boxstarter.ps1 -verb runas'}""
$TaskAction = New-ScheduledTaskAction -Execute "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" -argument $TaskActionArgument
$TaskTrigger = New-ScheduledTaskTrigger -AtStartup
Register-ScheduledTask -TaskName boxstarter -Action $TaskAction -Trigger $TaskTrigger -User administrator -Password Vmc12svt -RunLevel Highest

我检查了事件日志查看器,并看到了计划作业的以下错误消息:

  • 系统
  • 提供程序 名称PowerShell
  • EventID 403 限定符0 4级 任务4 关键词0x800000000000
  • TimeCreated SystemTime 2018-01-10T18:21:12.000000000Z EventRecordID 267 通道窗口PowerShell 电脑WIN-6 HSHKOKP31E 安全性
代码语言:javascript
复制
- EventData 

Stopped HostApplication=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe PreviousEngineState=Available SequenceNumber=16 HostName=ConsoleHost HostVersion=4.0 HostId=13ece112-b027-4051-9ddf-1a195d3a30f NewEngineState=Stopped -File -verb runas EngineVersion=4.0 RunspaceId=d158a216-18e3-4e86-9ade-b232201c9cdc CommandName= CommandType= ScriptName= CommandPath= CommandLine=

对于错误消息,我搜索并找到了错误代码这里的解释。

通常,该页说,这样的问题可能是由以下错误引起的:

  • 任务计划程序服务被禁用。
  • COM服务被禁用。
  • 禁用Windows事件日志服务
  • RPC服务被禁用。
  • 没有足够的空闲内存

以上不适用于我的系统。

那么,我的计划任务有什么错误呢?我怎么能让它起作用呢?

EN

回答 2

Stack Overflow用户

发布于 2018-01-10 15:07:12

看起来,您的所有服务都没有安装。在启动/登录时运行的事情上,这是一个常见的问题。有一个-RandomDelay参数。我建议你修补一下,如果是你自己的机器,你要用它来测试。我的例子用了1分钟。

代码语言:javascript
复制
$TaskTrigger = New-ScheduledTaskTrigger -AtStartup -Delay (New-TimeSpan -Minutes 1)

如果您需要一分钟左右的时间,所需的所有服务都应该在此之前启动。

您想要做的另一件事是让您的代码处于try/catch中,因此错误将被写入日志文件中,因此您可以在PowerShell上下文中看到错误,这可能会提供比您在事件日志中得到的更详细的消息。

票数 1
EN

Stack Overflow用户

发布于 2018-01-10 15:06:22

您可以通过手动创建计划任务,然后尝试运行它来解决此问题。

尝试将TaskActionArgument属性更改为以下字符串:

代码语言:javascript
复制
-NoProfile -ExecutionPolicy Bypass -File C:\users\administrator\updatescript\boxstarter.ps1

你不需要Start-Process-Verb runas。事实上,-Verb runas实际上会阻止工作,因为它会激发UAC提示符,您在尝试自动化时不希望这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48189431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档