Назад | Перейти на главную страницу

Планирование задач | заданий на серверах из центрального расположения. (Windows Server)

Есть ли способ планировать задачи | задания Windows на всех серверах из центрального местоположения (сервера)? Есть ли у Microsoft какое-нибудь решение для этого? Я предпочитаю встроенные функции MS или Windows Server перед ПО от сторонних производителей ...

Спасибо

[править]: Извините за непонятность. Я знаю, что могу управлять задачами с помощью «Планировщика заданий» на удаленном сервере или управлять ими с помощью PowerShell, но это не простое централизованное управление. Командлет «Get-ScheduledTask» не имеет параметра «server», поэтому мне нужно индивидуально подключаться к каждому серверу, запускать, например, командлет «Get-ScheduledTask», а затем выполнять каждую задачу на этом сервере «Get-ScheduledTaskInfo», потому что командлет "Get-ScheduledTask" сам вам ничего не говорит и таким образом собирать данные со всех серверов? И не говоря уже о задачах редактирования. Это действительно не простой сценарий. Я считаю, что у меня есть, например, «Планировщик заданий», но с задачами со всех указанных серверов. Или, по крайней мере, командлеты PowerShell, которые лучше подходят к этой задаче. Я подумал, что управление запланированными задачами на всех серверах из одного места не такая уж редкость, поэтому его следует внедрить в Windows Server. Нужно писать довольно сложные скрипты на такой простой и простой вещи ....

(кстати .. я использую Windows Server 2012)

Поэтому я спрашиваю, если я что-то пропустил, или мне действительно нужно написать этот (довольно длинный) сценарий, если я не хочу покупать стороннее программное обеспечение.

Ты можешь использовать Настройки групповой политики для создания запланированной задачи и развернуть через GPO. Вероятно, это самый быстрый способ получить то, что вы ищете.

Если у вас есть право на лицензирование System Center, вам также следует изучить System Center Orchestrator.

edit: я был так удивлен, что было 4 предыдущих ответа, в которых GPO не упоминалось как возможность, что я написал сообщение в блоге с кратким описанием того, как это сделать.

Кажется, что командлетов PS не хватает для управления запланированными задачами, но я думаю, что вы переоцениваете сложность составления отчетов по задачам или создания одной и той же задачи на нескольких серверах.

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.

Это зависит от того, какие задачи вы хотите выполнить.

Например, вы можете запланировать выполнение команды PowerShell на одном компьютере, который, в свою очередь, подключается к другим машинам и выполняет команды PowerShell.

Редактировать:

После разъяснения из OP вот как вы можете выполнить команду на удаленном сервере из PS:

Invoke-Command -ComputerName MYCOMPUTERNAME -ScriptBlock {
        Get-ScheduledTask | Get-ScheduledTaskInfo | fl
}

Чтобы дать вам другую точку зрения - это обычно делается с использованием специального централизованного программного обеспечения, и одно, которое может это сделать, - это диспетчер операций центра системы Microsoft.

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

есть некоторые обсуждения по этому поводу.

Пример планировщика корпоративных задач можно найти по адресу http://www.jamsscheduler.com/ - список функций может объяснить вам, почему они существуют.

Хотя, как только все становится сложнее, существует гораздо лучшее стороннее программное обеспечение. Не потому, что SCOM плохой - но он не специализируется на программном обеспечении для планирования предприятия, составляющем часть какого-то пакета управления. Планировщики Enterpise могут запускать распределенные рабочие процессы со сложными зависимостями (сначала запустите сценарий a на этих машинах, как только это будет сделано, этот сценарий на машине b, затем вернитесь к сценариям очистки на первом наборе, пока еще одна машина загружает файлы).

Преимущество SCOM и корпоративных планировщиков - центральное управление, особенно со специализированными инструментами. Автоматизация быстро становится сложной, и операционная группа должна иметь возможность видеть, что происходит.