Agendamento de tarefas | tarefas em servidores a partir da localização central. (Windows Server)

1

Existe alguma maneira, como agendar tarefas do Windows | tarefas em todos os servidores da localização central (servidor)? A Microsoft tem alguma solução para isso? Eu prefiro funcionalidades internas do MS ou do Windows Server antes do SW de terceiros ...

Obrigado

[edit]: Desculpe pela incompreensibilidade. Eu sei, que eu posso gerenciar tarefas através de "Agendador de Tarefas" no servidor remoto ou posso gerenciá-los usando o PowerShell, mas isso não é fácil gerenciamento centralizado. O cmdlet "Get-ScheduledTask" não tem o parâmetro "server", portanto, preciso conectar individualmente a cada servidor, executar, por exemplo, cmdlet "Get-ScheduledTask", em vez de executar em todas as tarefas desse servidor "Get-ScheduledTaskInfo", porque O cmdlet "Get-ScheduledTask" não informa nada e coleta dados de todos os servidores? E para não mencionar as tarefas de edição. Isso não é realmente um roteiro simples. Minha idéia é que eu tenho, por exemplo, "Task Scheduler", mas com tarefas de todos os servidores especificados. Ou pelo menos cmdlets do PowerShell com melhor abordagem a essa tarefa. Eu pensei, que gerenciar tarefas agendadas em todos os servidores de um lugar não é tão incomum, por isso deve ser implementado no Windows Server. Precisa escrever scripts bastante complicados em algo tão comum e simples ...

(btw .. eu estou usando o Windows Server 2012)

Estou perguntando se eu perdi alguma coisa ou realmente preciso escrever esse script (bastante longo) se não quiser comprar algum software de terceiros.

    
por devlin 04.04.2014 / 12:14

5 respostas

2

Você pode usar as Preferências da Política de Grupo para criar uma tarefa agendada e implantá-la via GPO. Esta é provavelmente a maneira mais rápida de obter o que você está procurando.

Se você tem direito ao licenciamento do System Center, também deve explorar o System Center Orchestrator .

edit: Eu fiquei tão surpreso que houve 4 respostas anteriores que não mencionaram o GPO como uma possibilidade, que eu escreveu uma postagem no blog com um breve resumo de como fazer isso.

    
por 05.04.2014 / 13:09
1

Por padrão, o Agendador de Tarefas no Vista + e no Server 2008 R2 + permitirá que você se conecte a um Agendador de Tarefas em outro computador .

Você também pode fazer isso com o PowerShell (se tiver um sistema operacional compatível cmdlets) ou via cmd.exe com o WinRM ou o PSExec , se você quiser uma abordagem totalmente roteirizada.

    
por 04.04.2014 / 15:14
1

Os cmdlets do PS parecem estar faltando para o gerenciamento de tarefas agendadas, mas acho que você está superestimando a complexidade de gerar relatórios sobre tarefas ou criar a mesma tarefa em vários servidores.

O SCHTASKS exe é uma ferramenta útil para gerenciar tarefas programaticamente: link

# 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
    }
}

Você também pode remover as mesmas tarefas em vários servidores usando a primeira metade da condição IF no segundo exemplo com o operador / DELETE.

    
por 04.04.2014 / 23:30
1

Depende de quais tarefas você deseja executar.

Você pode, por exemplo, programar um comando do PowerShell em uma máquina, que por sua vez se conecta a outras máquinas e executa comandos da powershell.

Editar:

Após o esclarecimento do OP, aqui está como você pode executar o Comando em um servidor remoto do PS:

Invoke-Command -ComputerName MYCOMPUTERNAME -ScriptBlock {
        Get-ScheduledTask | Get-ScheduledTaskInfo | fl
}
    
por 04.04.2014 / 13:57
1

Para dar um outro ângulo - isso normalmente é feito usando um software centralizado especial e um que pode fazer isso é o gerente de operações do microsoft system center.

link

tem alguma discussão sobre isso.

Um exemplo de um agendador de tarefas corporativas que você pode encontrar no link - a lista de recursos pode esclarecer por que eles existem.

Embora as coisas fiquem complexas, há um software de terceiros muito melhor. Não como o SCOM é ruim - mas não é especializado como software de agendamento corporativo, a parte de agendamento de parte de algum pacote de gerenciamento. Os Agendadores do Enterpise podem executar fluxos de trabalho distribuídos com dependências complexas (primeiro script de execução a nessas máquinas, uma vez feito esse roteiro na máquina b, depois voltando a limpar os scripts no primeiro conjunto enquanto outra máquina faz uploads de arquivos).

A vantagem do SCOM e dos escalonadores corporativos é o controle, central, especialmente com toold especializado. A automação se torna complexa rapidamente e uma equipe de operações deve ser capaz de ver o que está acontecendo.

    
por 05.04.2014 / 09:30