Показать полную графическую версию : Выполнить скрипт один раз
goog2e@vk
01-07-2013, 11:52
Суть да дело надо каким-то образом(не обязательно через групповые политики, но и не вручную) выполнить на каждом компьютере домена некий скрипт один раз.
Как это можно сделать?
Заранее спасибо за помощь
Its-me-again
01-07-2013, 15:44
Думаю можно попробовать создать scheduled task который запустится один раз:
http://technet.microsoft.com/en-us/library/cc725745.aspx
astomper7
01-07-2013, 22:41
А лучше через Group Policy Preferencies
WindowsNT
02-07-2013, 08:19
Я уже неоднократно пробовал решить эту задачу, ничего толкового не получилось. Не нравится, что зашедуленная задача остаётся висеть в списке, не стирается.
Можете попробовать дописать в скрипте проверку какого-либо флага. Если флага нет — выполнить скрипт полностью и установить флаг.
Чаще всего, никакого дополнительного флага и не требуется, ибо, как правило, уже само условие «один раз» и подразумевает как раз некую булеву проверку чего либо.
WindowsNT
02-07-2013, 12:07
Ну вот смотрите две типичные задачи:
1. Хочу выполнить на всех машинах passprop /adminlockout только один раз. Никаких очевидных изменений эта команда в файлы или ключи реестра не вносит. Очевидно, что существуют компьютеры, которые в настоящий момент выключены (человек в отпуске), а также те, кто ещё будет когда-то введён в домен. Как реализовать задачу?
2. Нужно распространить на все машины новый файл Wallpaper.BMP. Если это делать с помощью Preferences, начинается ерунда. В режиме Replace файл размером 2.5 МБ будет копироваться на всю тысячу машин каждый цикл обновления политик (90-+30 минут). В режиме Update он вообще не будет копироваться, так как такой файл уже существует. Режим Targeting поддерживает только проверку существования файла, но не сверки его версии. Как реализовать задачу?
Its-me-again
03-07-2013, 00:06
У меня такое ощущение (может быть неверное), что scheduled tasks via gpp не подходят для решения задач описанных WindowsNT, . По первой задаче: при выборе опции Run at once можно выбрать только конкретную дату выполнения таска, получается после того, как эта дата истечет придется заново создавать задание?
Идея с флагом на мой взгляд самая перспективная, вот тут например (http://blogs.technet.com/b/heyscriptingguy/archive/2007/05/02/how-can-i-ensure-that-a-script-runs-only-once-on-a-computer.aspx) описывается как устанавливать флаг в реестре. Остается вопрос - куда засунуть такой скрипт, ведь если проверка флага будет выполнятся например после каждой перезагрузки, это будет отнимать часть ресурсов?
WindowsNT
03-07-2013, 00:53
В свойствах задачи можно указать "исполниться как можно скорее, если время пропущено". И время истечения задачи указать +10 лет.
Скрипт можно распространить средствами того же GPP. Например, раскидать в C:\Windows на каждой машине. Ну или если он небольшой, прямо из NetLogon исполнять, батник же никакой по размеру, если сравнивать с теми же политиками. Флагом может служить любой пустой текстовый файл.
echo Done > %SystemRoot%\Complete.txt
Метод с vbs излишне сложен, есть же команда reg /?
Через GPP многое сделать не получится, у них вообще большие проблемы с галочкой Run only once. Например, при создании нового профиля GPP отрабатывают быстрее. Как результат, параметры нового профиля затирают собой настроенное в GPP.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.