每次修改文件夹树时是否可以启动脚本。
例如:
root
dir1
file1
dir2
file1
file2
Run Code Online (Sandbox Code Playgroud)
root将被监听,例如,如果 file2 被修改或在目录树中的任何地方添加了一个新文件,脚本就会启动。
一个子问题是:是否由排队的事件触发的计划任务?
谢谢你的帮助!
windows windows-server-2008 scheduled-task task-manager task-scheduler
我正在使用 Windows 2008 R2 并且我正在尝试在任务计划程序中安排我的应用程序。我已经使用正确的设置创建了一个批次。
我遇到的问题是:我需要显示 Cmd shell 窗口(运行 bat),但是任务调度程序在后台启动应用程序并且 Cmd 窗口无处可见。
我从任务调度程序中尝试了不同的东西:
- cmd /c start ...MyProgram.bat does not work.
- I tried calling my batch directly does not work.
- I also tried a piece of vbs script with winScriptHost.run does not work either.
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我该如何解决这个问题?
每当我尝试运行 Windows 2008 R2 的任务调度程序时,我都会遇到错误。每次我尝试运行它时,任务调度程序都会崩溃并报告以下内容:
问题签名:
Problem Event Name: CLR20r3
Problem Signature 01: mmc.exe
Problem Signature 02: 6.1.7600.16385
Problem Signature 03: 4a5bc808
Problem Signature 04: System.Windows.Forms
Problem Signature 05: 2.0.0.0
Problem Signature 06: 50c29e85
Problem Signature 07: 151f
Problem Signature 08: 18
Problem Signature 09: Exception
OS Version: 6.1.7601.2.1.0.16.7
Locale ID: 1033
Run Code Online (Sandbox Code Playgroud)
我一直在网上寻找,但到目前为止,我一直在寻找解决此问题的不同结果,并且想知道这里是否有人以前遇到过这个问题。我读到这个问题可能是由于 Microsoft Windows 的安全更新 (KB2449742) 而通过卸载它我将能够解决这个问题,但是我无法在服务器的任何地方找到它。
补丁明智,一切都是最新的。此外,我尝试运行修补程序 KB2688730 以查看在进行了一些在线研究后是否可行,但是该修补程序不适用于计算机。
如果有人可以提供一些有关如何解决此问题并使任务调度程序再次运行的信息,那将非常有帮助!
在 Windows Server 2008 R2 上使用任务计划程序 MMC,我遇到了一些让我非常恼火的事情:
任务的历史记录窗口不记得列宽,因此阅读起来相当困难/不可能。
例子:
这是打开 MMC 并选择一项任务时最初的样子:

然后我通过双击调整列宽,最终可以读取内容:

然后,我选择另一个任务并再次面对相同(太小)的列:

这真的让我发疯。由于我是一名开发人员并且只是一名“兼职管理员”,我无法想象一个全职管理员如何使用这个工具而不会发疯。
所以我的问题是:
有没有办法配置 Windows 任务计划程序 MMC 以记住历史记录窗口的列的宽度?
(或者:是否有另一个 GUI 工具来管理我的计划任务?)
windows windows-server-2003 windows-server-2008 task-scheduler
我正在尝试从脚本中Task Scheduler的本地计算机打印信息,PowerShell以便其他用户也可以打印此信息而不必访问Task Scheduler. 我需要脚本打印出来
我可以打印出有关名称、下次运行时间和上次运行时间的信息,但在运行脚本时不会打印出其余的信息。
我已经对我的脚本有了一个小小的开始,并把字段放下了。
$schedule = new-object -com("Schedule.Service")
$schedule.connect()
$tasks = $schedule.getfolder("\").gettasks(0)
$tasks | select Name,Status,Triggers,NextRunTime,LastRunTime,LastRunResult,Author,Created | ft
foreach ($t in $tasks)
{
foreach ($a in $t.Actions)
{
$a.Path
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助或建议将不胜感激。
以下是我正在寻找的内容以及哪些字段未打印出数据的屏幕截图:

powershell windows-server-2008 task-scheduler windows-server-2012
我们的客户有一些运行由任务计划程序激活的批处理作业的 Windows 2003 服务器。执行工作的实际程序是自定义的 .exe 进程,它们被聚合到 .cmd 脚本中,以便在计划的时间间隔到来时由 Task Scheduler 一起启动。cmd 脚本中的行可能会也可能不会使用 Call 命令来启动单独的 .exe 程序。
在此设置中,任务计划程序有效地监视 cmd.exe,并且在使用进程资源管理器时,可以观察到子 .exe 进程停放在 cmd.exe 进程树下。但是,当任务计划程序由于超出允许的时间限制而终止 cmd.exe 时,子 .exe 进程可能不会与其父进程一起被终止并成为孤立的。这些进程无限期地停滞不前。由于进程资源管理器中显示的进程线程状态,我怀疑这些进程最终出错并弹出了一个 .NET 调试器对话框(这些是 .NET 应用程序),由于批处理作业用户是一个单独的用户,因此无法看到该对话框帐户。
最初,当我在我的 Windows XP 工作站上调查此行为时,我观察到从我的测试 .cmd 脚本启动的子 .exe 进程确实在任务计划程序决定时间到时与 cmd.exe 一起被杀死。我无法孤立子进程。
基于一种预感,我最终转移到一台 Windows 2003 机器上进行测试。同样,子进程会像我工作站中的进程一样被终止。我的第二步是使用另一个用户帐户来运行计划任务。这一次,cmd.exe 在超过时间限制后被杀死,但子进程仍然存在,就像我的客户在他们的生产服务器中观察到的一样。
如果我抢先登录该批处理用户帐户(恰好是另一个管理员帐户)以声明桌面会话,则来自我的测试 .exe 程序的任何错误或信息弹出窗口都将路由并呈现在该桌面上,允许我查看实际的用户输出。如果我只在调用计划任务后登录,桌面会话将不会“回收”现有进程的窗口;他们永远隐藏。
我的问题是,我在这里缺少什么条件会导致任务计划程序不清除 cmd.exe 下的子进程?使用另一个会引起这种行为的帐户有什么特别之处,但在使用我当前的管理员帐户运行计划任务时却没有?
我创建了一个任务计划程序事件,它在 Microsoft-Windows-Backup 事件日志中的 EventID 14 上通过电子邮件发送给我(注意这是一个新的样式(Vista 及更高版本)日志。我导出了这个,并在 Serverfault 和 Technet 上进行了一些研究后,包括这个问题
我的任务触发器的 XML 要点是:
<Triggers>
<EventTrigger>
<Enabled>true</Enabled>
<Subscription><QueryList><Query Id="0" Path="Microsoft-Windows-Backup"><Select Path="Microsoft-Windows-Backup">*[System[Provider[@Name='Microsoft-Windows-Backup'] and EventID=14]]</Select></Query></QueryList></Subscription>
<ValueQueries>
<Value name="eventChannel">Event/System/Channel</Value>
<Value name="eventExinfo">Event/EventData/Data[@Name='ComponentStatus']</Value>
<Value name="eventRecordID">Event/System/EventRecordID</Value>
<Value name="eventSeverity">Event/System/Level</Value>
</ValueQueries>
</EventTrigger>
</Triggers>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会产生错误(Action 上的 Launch Failiure)。非常相似:
<Triggers>
<EventTrigger>
<Enabled>true</Enabled>
<Subscription><QueryList><Query Id="0" Path="Microsoft-Windows-Backup"><Select Path="Microsoft-Windows-Backup">*[System[Provider[@Name='Microsoft-Windows-Backup'] and EventID=14]]</Select></Query></QueryList></Subscription>
<ValueQueries>
<Value name="eventChannel">Event/System/Channel</Value>
<Value name="eventExinfo">Event/EventData/Data[@Name='BackupTemplateID']</Value>
<Value name="eventRecordID">Event/System/EventRecordID</Value>
<Value name="eventSeverity">Event/System/Level</Value>
</ValueQueries>
</EventTrigger>
</Triggers>
Run Code Online (Sandbox Code Playgroud)
工作正常并向我发送电子邮件“BackupTemplateID”值。
我认为这是因为“ComponentStatus”的内容本身就是 XML,但不是任务计划程序架构的一部分。
有没有人知道解决这个问题的方法?如果这是不可能的,另一种获取数据的方法也可以。
我希望这样做是因为 ComponentStatus 部分会记录备份是否在将 Exchange 作为应用程序进行备份时出现问题,而事件描述仅指示备份已成功完成。
windows-server-2008 windows-event-log task-scheduler windows-server-backup
我有几个独立的 Win2008 (R1+R2) 服务器(无域),每个服务器都有几十个计划任务。每次我们设置新服务器时,所有这些任务都必须在其上创建。
任务不在“任务计划程序库”的“根”中,它们驻留在子文件夹中,最多两层深。
我知道我可以使用 schtasks.exe 将任务导出到 xml 文件,然后使用:
schtasks.exe /CREATE /XML ...'
Run Code Online (Sandbox Code Playgroud)
将它们导入到新服务器上。问题是 schtasks.exe在 root 中创建它们,而不是在它们所属的子文件夹中。GUI 中也无法移动任务。
有没有一种工具可以让我集中管理我的所有任务,并允许我在多台机器上的文件夹中创建它们?它还可以更轻松地设置“执行用户和密码”。
如何添加应在 Windows Server 2003 R2 上每 x 分钟运行一次的计划任务。
我遵循了网络上的许多建议,但在运行 1 或 2 次后,我总是会出现一些中断。
这是我所做的:
新建计划任务
计划 > 每日任务 08:00 AM,每 1 天
计划 > 高级 > 每 30 分钟重复一次任务,持续 31 分钟(为什么???)
启用它
1 次运行后不工作,下一次运行时间为 +1 天上午 08:00
如何解决这个问题?
我需要安排Task我的 Windows 2012 内部每分钟运行一次,如何做到这一点?这是我的Task:
C:\>C:\Users\Administrator\Downloads\wget\bin\wget.exe --spider --quiet http://XXX/XXX.aspx
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Users\Administrator\Downloads\wget/etc/wgetrc
C:\>
Run Code Online (Sandbox Code Playgroud)
我试过Task Scheduler-> Create Task,但我不知道如何安排每分钟运行一次。
这在 *NIX 世界中是等价的:
$ crontab -l
* * * * * wget --spider --quiet http://XXX/XXX.aspx
$
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢!