Запуск сценария при запуске Windows без входа пользователя в систему

Это машина Windows 2003, которая включается каждое утро, но никто не входит в систему до нескольких часов спустя.

Я хочу использовать время между запуском сценария резервного копирования c:scriptbackup - ... cmd

Как я могу начать это без присмотра после того, как машина пришла?

я попробовал 2 раздела реестра, но это привело к запуску сценария после входа пользователя в систему (что слишком поздно):

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServices

в конце концов я использовал Windows TaskScheduler, который есть такой вариант, но мне было интересно, есть ли другая возможность?

5 ответов


короткий ответ: команду gpedit.MSC (Запуск, Запуск, GPEdit.msc)

Windows 2000 и выше [1] предлагают компьютер Скрипты коллекция в Редакторе политики:

  • Параметры Компьютера ->Настройки Windows ->Сценарии (Запуск/Завершение)

есть эквивалент вход в систему область скрипта (т. е. после запуска компьютера, когда пользователь регистрируется on) в бит конфигурации пользователя.

больше:

команду gpedit.MSC является консолью редактирования групповой политики и работает против хранилища групповой политики локального компьютера, когда он используется напрямую, поэтому он полезен для установки параметров только локального. При использовании Active Directory тот же интерфейс используется для редактирования лесаобъекты групповой политики (GPOs), поэтому одни и те же настройки доступны на нескольких машинах.

запуск компьютера скрипты запускаются в контекст компьютер, т. е. LocalSystem, как вы отметили, поэтому они часто не могут получить доступ к сетевым дискам, для работы которых требуется определенное членство пользователя или группы, и так далее. Когда компьютеры обращаются к сети, они обычно (с исключениями) используют свою учетную запись MACHINENAME$.

A запуск скрипта - это быстрый и простой способ получить процесс работает, когда машина загружается.

процесс запуска компьютера будет зависеть от однако для запуска программы требуется время, поэтому вы можете вызвать ее с помощью команды "пуск" из пакетного файла или указать, что не нужно ждать завершения исполняемого файла на любом языке сценария, который вы используете. (ключевой момент: запустите скрипт асинхронно если это не критично или не нужно запускать асинхронно, потому что это всегда займет времени на всех. Длинные сапоги = несчастные пользователи).

использование службы Win32 является альтернативой опция-вы можете использовать SRVANY утилита из набора ресурсов в "service-ify" практически любой исполняемый файл. VS.Net 2002 и более поздние версии также позволяют создавать управляемую службу напрямую.

и Планировщик Задач получает много более способный с Vista / 2008, способный запускать скрипты при запуске, на холостом ходу и / или когда генерируются журналы событий или выполняются некоторые другие условия: это довольно круто! Запланированные задачи имеет преимущество укажите учетную запись пользователя, под которой выполняется задача, если это важно для вас.

Предостережение Scriptor: http://support.microsoft.com/kb/256320

Запуск Сценариев Запуска Асинхронно: http://msdn.microsoft.com/en-us/library/ms811602.aspx

планировщик задач Vista (что нового): http://technet.microsoft.com/en-us/appcompat/aa906020.aspx

[1] Windows XP, 2003, Vista/ 2008, Windows 7 / 2008R2, Windows 8/2012, Windows 8.1 / 2012R2, Windows 10 / Windows Server 2016. Всё. Но это NT4 не!


вы уже наметили хорошее решение:

настройки запланированное задание для запуска при запуске и разрешить выполнение задания, когда пользователь не вошел в систему.


вы можете запустить скрипт при запуске системы с помощью групповых политик gpedit.msc


то, как вы это делаете, кажется мне прекрасным; однако, если вы хотите альтернативный подход, то службы запускаются при загрузке машины, чтобы вы могли написать службу, которая обнаруживает, что это новый день (для перезагрузки), и если это затем запустить резервную копию.

Если Я делал это как сервис, я бы использовал TCL, потому что я его знаю и люблю, и у него есть расширение twapi это позволяет запускать скрипт как сервис. Другие языки сценариев могут хорошо иметь подобные объекты.


есть, если вы используете Active Directory. Если можно изолировать компьютер от его собственного подразделения или использовать фильтрацию WMI, можно назначить GPO, который имеет сценарий запуска для компьютера. Это гарантирует, что даже если кто-то вошел в безопасный режим и отключил планировщик задач, при запуске и подключении к домену сценарий будет запущен.