![]() |
Единовременное выполнение скрипта
Всем добрый день.
Имеется сеть, контроллер домена крутится на Win2003. Надо на все машины в сети залить папку. Я так понимаю, что делается это посредством сценария на автозагрузку (конфигурация компьютера) или сценария на вход в систему (конфигурация пользователя). Вот только вопрос - как сделать так, чтобы сценарий выполнялся единовременно, а не каждый раз после загрузки или входа в систему? |
ИМХО: Стандартными стредствами - никак.
|
qwerty123123 наверное в сценарии нужно вставить проверку условия (например, наличие уже созданной папки). а выполняться он будет каждый раз. AFAIK
|
А вариант воспользоваться командой
Код:
at \\remote_computer 00:00 "copy _чего_там_надо_" Команда один раз выполнится и из списка задач исчезнет. |
2xeel:
На многих компах служба расписаний отключена за ненадобностью, хотя включить ее через ГП наверно не проблема (вроде она включается здесь - Конфигурация компьютера -> Конфигурация Windows -> Параметры безопасности -> Системные службы - если ошибаюсь поправьте). Так что в принципе можно и так сделать, но ту проблема вот в чем - папку надо залить на все компы в сети, а это значит что: 1) все компы должны работать в момент запуска скрипта генерации задания 2) все компы должны работать в момент запуска самого задания. Конечно если сеть не большая, то эти условия легко выполнимы, а если машин в сети порядка сотни? |
Ну можно сделать это с другой стороны (правда при выполнении пары условий) - запустить батник на сервере, чтобы он скопировал папку на все компьютеры пользователей.
Для этого надо: 1. Чтобы на компах были шары (подойдут системные, если их не вырубили - c$, D$ и т.д.) 2. По-прежнему надо, чтобы компы были запущены на момент запуска. Но по сравнению с ранее предложенным вариантом - только в момент запуска батника. Результаты выполнения соханить в файл - и ты всегда сможешь увидеть - удачно все прошло или нет. Чтобы не прописывать в нем все компы - можно написать его на VBS, получив список компов из Active Directory. Вроде получается получше, чем предыдущий вариант. |
Есть такой раздел в реестре: Software\Microsoft\Windows\CurrentVersion\RunOnce
Знаю, что многие программы, которые устанавливаются с перезагрузкой (а после перезагрузки продолжают установку), записывают туда то, что надо запускать. |
2Envel:
Тут та же самая проблема - для того, чтобы добавить записи в реестр, надо выполнять задание посредством групповых политик, причем прописывать так, чтобы чтобы это задание выполнялось лишь один раз. Или можно как-то по другому добавить эти записи в реестр? 2xeel: Довольно проблематично определить все машин включены или нет... |
А в скрипте нельзя поставить проверку.
ЕСли есть папка то не копируй, а иначе? А как пройдет время удалишь его из параметров запуска. |
Попробуй в твоей ГП для компа, безопасность, добавить в ветку реестра runonce и батник, который бы копировал с сервера на клиента
|
Решил пойти по пути проверки наличия определенного файла. Закончу - выложу батник, может кому понадобится...
|
Можно сделать с помошью msi
создать msi и прописать в назначенные приложения просто в msi не будет устанавливаться никакое приложение, а просто копироваться папка |
В итоге получился следующий скрипт:
Код:
IF EXIST filename_flag ( filename_flag - файл, выполняющий роль флага, он сигнализирует надо выполнять задание или нет. Если файл найден - то задание не выполняется. Разумеется этот файл входит в число копируемых данным заданием. serv - некий сервер в сети sharefolder - расшаренная папка на этом сервере в которой находятся файлы/папки для копирования task.txt - лог выполнения задания. В ходе выполнения задания в этот файл вносится имя компьютера на котором задание было выполнено Условие Код:
IF ERRORLEVEL==1 (echo %COMPUTERNAME% >> \\serv\sharefolder\task.txt) ELSE (exit) Ну и в итоге периодически производим анализ файла task.txt - смотрим общее количество строчек в этом файле и сравниваем его с общим количеством компов в сети, на которых должно быть выполнено это задание. Как только они сравняются - задание удаляем. |
Время: 00:13. |
Время: 00:13.
© OSzone.net 2001-