从中心位置跨服务器调度任务|作业。(Windows 服务器)

从中心位置跨服务器调度任务|作业。(Windows 服务器)

有什么方法可以从中央位置(服务器)在所有服务器上安排 Windows 任务|作业?Microsoft 对此有任何解决方案吗?我更喜欢 MS 或 Windows Server 内置功能,而不是第三方 SW...

谢谢

[编辑]:抱歉,我理解不了。我知道,我可以通过远程服务器上的“任务计划程序”管理任务,也可以使用 PowerShell 管理任务,但这不是简单的集中管理。Cmdlet“Get-ScheduledTask”没有“服务器”参数,所以我需要单独连接到每台服务器,例如运行 cmdlet“Get-ScheduledTask”,然后在该服务器上的每个任务上运行“Get-ScheduledTaskInfo”,因为 cmdlet“Get-ScheduledTask”本身没有告诉您任何信息,而是以这种方式从所有服务器收集数据?更不用说编辑任务了。这真的不是一个简单的脚本。我的想法是,我有例如“任务计划程序”,但包含来自所有指定服务器的任务。或者至少有 PowerShell cmdlet 可以更好地完成此任务。我认为,从一个地方管理所有服务器上的计划任务并不罕见,因此应该将其实现到 Windows Server 中。需要为如此常见和简单的事情编写相当复杂的脚本......

(顺便说一下,我使用的是 Windows Server 2012)

所以我想问一下,我是否错过了什么,或者如果我不想购买一些第三方软件,我真的需要编写那个(相当长的)脚本。

答案1

您可以使用组策略首选项来创建计划任务并通过 GPO 进行部署。这可能是获取所需内容的最快方法。

如果您有权获得 System Center 许可,您还应该探索系统中心 Orchestrator

编辑:我很惊讶之前有 4 个答案没有提到 GPO 的可能性,所以我写了一篇博客文章简要介绍一下如何做到这一点。

答案2

答案3

PS cmdlet 似乎确实缺乏管理计划任务的功能,但我认为您高估了任务报告或在多台服务器上创建相同任务的复杂性。

SCHTASKS exe 是一个用于以编程方式管理任务的有用工具:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb736357%28v=vs.85%29.aspx

# Inventory Report
foreach ($server in gc .\serverList.txt) {
    write-warning $server
    SCHTASKS.EXE /s $server /query /fo csv > tasks.csv
    $csv = Import-Csv .\tasks.csv
    $csv | where {$_.taskname.lastindexof("\") -eq 0 -OR $_.taskname -match "\\Legacy" }    # Ignore bultin OS tasks from MS
}

# Create task if missing
foreach ($server in gc .\serverList.txt) {
    write-warning $server
    SCHTASKS.EXE /s $server /query /fo csv > tasks.csv
    $csv = Import-Csv .\tasks.csv
    if ( $csv.taskname.contains("\TaskNameToFind") ) {
        "Job already present"
    } else {
        SCHTASKS.EXE /s $server /Create /SC MONTHLY /MO first /D SUN /TN TaxTime C:\windows\system32\calc.exe
    }
}

您也可以使用第二个示例中 IF 条件的前半部分和 /DELETE 运算符来跨多个服务器删除相同的任务。

答案4

换个角度来说,这通常是使用特殊的集中式软件来完成的,而能够做到这一点的软件就是微软系统中心操作管理器。

http://www.systemcentercentral.com/opsmgr-forum-discussion-task-automation-with-opsmgr-rules-or-windows-scheduled-tasks/

对此有一些讨论。

您可以在以下位置找到企业任务调度程序的示例http://www.jamsscheduler.com/- 功能列表可能会让您了解它们存在的原因。

尽管一旦事情变得复杂,就会有更好的第三方软件。并不是因为 SCOM 不好 - 但它不是专门作为企业调度软件,调度部分是某些管理包的一部分。企业调度程序可以运行具有复杂依赖关系的分布式工作流(首先在这些机器上运行脚本 a,完成后在机器 b 上运行该脚本,然后返回到第一组上的清理脚本,而另一台机器则进行文件上传)。

SCOM 和企业调度程序的优势在于控制力强、集中性强,尤其是使用专业工具时。自动化很快就会变得复杂,运营团队必须能够看到正在发生的事情。

相关内容