![]() |
Выполнить скрипт один раз
Суть да дело надо каким-то образом(не обязательно через групповые политики, но и не вручную) выполнить на каждом компьютере домена некий скрипт один раз.
Как это можно сделать? Заранее спасибо за помощь |
Думаю можно попробовать создать scheduled task который запустится один раз:
http://technet.microsoft.com/en-us/l.../cc725745.aspx |
А лучше через Group Policy Preferencies
|
Я уже неоднократно пробовал решить эту задачу, ничего толкового не получилось. Не нравится, что зашедуленная задача остаётся висеть в списке, не стирается.
Можете попробовать дописать в скрипте проверку какого-либо флага. Если флага нет — выполнить скрипт полностью и установить флаг. |
Чаще всего, никакого дополнительного флага и не требуется, ибо, как правило, уже само условие «один раз» и подразумевает как раз некую булеву проверку чего либо.
|
Ну вот смотрите две типичные задачи:
1. Хочу выполнить на всех машинах passprop /adminlockout только один раз. Никаких очевидных изменений эта команда в файлы или ключи реестра не вносит. Очевидно, что существуют компьютеры, которые в настоящий момент выключены (человек в отпуске), а также те, кто ещё будет когда-то введён в домен. Как реализовать задачу? 2. Нужно распространить на все машины новый файл Wallpaper.BMP. Если это делать с помощью Preferences, начинается ерунда. В режиме Replace файл размером 2.5 МБ будет копироваться на всю тысячу машин каждый цикл обновления политик (90-+30 минут). В режиме Update он вообще не будет копироваться, так как такой файл уже существует. Режим Targeting поддерживает только проверку существования файла, но не сверки его версии. Как реализовать задачу? |
У меня такое ощущение (может быть неверное), что scheduled tasks via gpp не подходят для решения задач описанных WindowsNT, . По первой задаче: при выборе опции Run at once можно выбрать только конкретную дату выполнения таска, получается после того, как эта дата истечет придется заново создавать задание?
Идея с флагом на мой взгляд самая перспективная, вот тут например описывается как устанавливать флаг в реестре. Остается вопрос - куда засунуть такой скрипт, ведь если проверка флага будет выполнятся например после каждой перезагрузки, это будет отнимать часть ресурсов? |
В свойствах задачи можно указать "исполниться как можно скорее, если время пропущено". И время истечения задачи указать +10 лет.
Скрипт можно распространить средствами того же GPP. Например, раскидать в C:\Windows на каждой машине. Ну или если он небольшой, прямо из NetLogon исполнять, батник же никакой по размеру, если сравнивать с теми же политиками. Флагом может служить любой пустой текстовый файл. echo Done > %SystemRoot%\Complete.txt Метод с vbs излишне сложен, есть же команда reg /? Через GPP многое сделать не получится, у них вообще большие проблемы с галочкой Run only once. Например, при создании нового профиля GPP отрабатывают быстрее. Как результат, параметры нового профиля затирают собой настроенное в GPP. |
Время: 00:48. |
Время: 00:48.
© OSzone.net 2001-