Есть ли способ планировать задачи | задания 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. (если у вас есть ОС, поддерживающая эти командлеты) или через cmd.exe
с WinRM или PSExec, если вам нужен полностью сценарий.
Это зависит от того, какие задачи вы хотите выполнить.
Например, вы можете запланировать выполнение команды PowerShell на одном компьютере, который, в свою очередь, подключается к другим машинам и выполняет команды PowerShell.
Редактировать:
После разъяснения из OP вот как вы можете выполнить команду на удаленном сервере из PS:
Invoke-Command -ComputerName MYCOMPUTERNAME -ScriptBlock {
Get-ScheduledTask | Get-ScheduledTaskInfo | fl
}
Чтобы дать вам другую точку зрения - это обычно делается с использованием специального централизованного программного обеспечения, и одно, которое может это сделать, - это диспетчер операций центра системы Microsoft.
есть некоторые обсуждения по этому поводу.
Пример планировщика корпоративных задач можно найти по адресу http://www.jamsscheduler.com/ - список функций может объяснить вам, почему они существуют.
Хотя, как только все становится сложнее, существует гораздо лучшее стороннее программное обеспечение. Не потому, что SCOM плохой - но он не специализируется на программном обеспечении для планирования предприятия, составляющем часть какого-то пакета управления. Планировщики Enterpise могут запускать распределенные рабочие процессы со сложными зависимостями (сначала запустите сценарий a на этих машинах, как только это будет сделано, этот сценарий на машине b, затем вернитесь к сценариям очистки на первом наборе, пока еще одна машина загружает файлы).
Преимущество SCOM и корпоративных планировщиков - центральное управление, особенно со специализированными инструментами. Автоматизация быстро становится сложной, и операционная группа должна иметь возможность видеть, что происходит.