Перейти к содержимому
www.mytechnote.ru
Меню
  • Администрирование
    • Скрипты
  • Оборудование
    • Обзоры
    • Инструкции
  • Прочее
  • Русский
    • English
    • Русский
Меню

Как быстро скопировать задания из планировщика заданий на несколько компьютеров или серверов

Появилась необходимость раскидать горстку заданий из Task Scheduler на горстку серверов. Помнится когда-то это можно было делать через групповые политики. И такая возможность в общем то и сейчас есть, но там теперь нельзя указывать определенную учётную запись, от имени которой должно выполняться задание, точнее УЗ с паролем (вообще то это можно обойти, вручную поправив файлы групповой политики в sysvol, но это не безопасно и топорно).

Как вы понимаете, если нужно скопировать скажем 20 заданий на 10 машин, то даже экспортируя и импортируя задания – можно сойти с ума от однотипных действий – открытия оснастки, импорта и ввода пароля. Плюс чем ближе конец этого мучения, тем больше будет вероятность что-то пропустить. А если потом задания нужно будет изменить?

Короче говоря, задача может быть выполнена при помощи небольшого скрипта PowerShell, текст которого представлен ниже:

$taskpath="\audit\"
$user="domain\scriptRunner"
$password="verysecret"
$tasks=get-ScheduledTask -taskpath $taskpath
$comps=Get-ADDomainController -filter * | Select-Object name
foreach ($comp in $comps){
    if ($comp.name -ne $env:computername){
        $comp.name
        Get-ScheduledTask -TaskPath $taskpath -CimSession $comp.name | Unregister-ScheduledTask -Confirm:$false
        foreach ($task in $tasks){
            $task.taskname
            $exported=export-scheduledtask -taskpath $taskpath -TaskName $task.taskname
            Register-ScheduledTask -Xml $exported -cimsession $comp.name -taskname $task.taskname -User $user -password $password -TaskPath $taskpath -force
        }
    }
}

Тут я для примера копирую все задачи из папки audit, на все контроллеры домена в организации.

Скрипт смотрит все задачи в указанной папке выполняет экспорт задачи в XML (без сохранения на диск), затем импортирует их поочередно на каждый из компьютеров. При импорте (командлет Register-ScheduledTask) указаны имя и пароль для учётки, от имени которой должны запускаться задания.

Также обратите внимание, на строчку

Get-ScheduledTask -TaskPath $taskpath -CimSession $comp.name | Unregister-ScheduledTask -Confirm:$false

Она отчищает указанную папку с заданиями на целевом сервере. Если вам это не надо – удалите или закомментируйте её.

Скрипт доступен на GitHub.

Когда вам потребуется  менять пароль учётной записи для заданий планировщика, рекомендую посмотреть этот пост.

Опубликовано в 17.12.202030.05.2024 от sanglyb

Навигация по записям

← Xiaomi Mi Smart Band 5 – может это всё же 4.5, а не 5?
Яндекс Станция Макс — круто, но дороговато →

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Подписывайтесь

Youtube
vk
telegram
github
twitter
rss
  • Форум
  • Об авторе
  • Поддержать автора

Популярные записи

Новые записи

  • Как расширить LVM раздел в Linux
  • Исправление ошибки SrsResources.dll после обновления SSRS для SCCM
  • Проблема при использовании библиотеки PassFiltEx на старых процессорах
  • Как удалить вложения из старых событий календаря в Exchange с помощью скрипта
  • Как скачать и установить Office 2024 LTSC

Архивы

  • 2026 (3)
  • 2025 (5)
  • 2024 (7)
  • 2023 (6)
  • 2022 (5)
  • 2021 (25)
  • 2020 (34)
  • 2019 (39)
  • 2018 (78)
  • 2017 (56)
  • 2016 (77)
  • 2015 (9)
© 2015-2026 www.mytechnote.ru
Использование материалов сайта возможно только с разрешения владельца или обязательна индексируемая, прямая, передающая вес ссылка на материал.