Я написал файл .cmd, который вызывает десять разных файлов .exe. Я могу запустить этот файл .cmd локально на моем сервере, и он отлично работает.
Когда я использую [gpedit.msc] (редактор групповой политики) для «Конфигурация компьютера, параметры Windows» и устанавливаю свой файл .cmd в качестве сценария запуска, все в порядке.
Когда я перезагружаю свой сервер, сценарий запуска никогда не вызывается. Я не могу понять почему. Моя цель состоит в том, чтобы этот сценарий выполнялся каждый раз, когда я запускаю свой сервер. (не вход в систему).
Этот сервер, на котором я тестирую, не является контроллером домена. Я не уверен, связано ли это с проблемой? Помогите?
p.s. это облачные серверы EC2 Amazon. Боль в боку.
Начните с «Результирующего набора политик» (rsop.msc
) и посмотрите, обрабатывается ли объект групповой политики, содержащий ваш скрипт. Чаще всего проблемы с применением политики заканчиваются несоответствием понимания системным администратором того, где связать объект групповой политики, и того, как список объектов групповой политики, применимых к данному пользователю или компьютеру, фактически рассчитывается операционной системой.
Если объект групповой политики обрабатывается, но сценарий не выполняется, я бы проверил, что разрешения, установленные для сценария, позволяют учетной записи компьютера соответствующего компьютера читать / выполнять сценарий и что путь, указанный в объекте групповой политики, разрешается правильно. на предметном компьютере.
Редактировать:
Вы ищете неправильное место в инструменте результирующего набора политик. «Настройки программного обеспечения» - это место в групповой политике, куда можно «принудительно» установить программное обеспечение. Вас интересует "Параметры компьютера / Параметры Windows / Сценарии (запуск / выключение)".
Мне было бы очень интересно увидеть, указан ли объект групповой политики, в котором вы указали сценарий, на вкладке «Общие» в «Свойства» узла «Параметры компьютера» в RSoP. Я подозреваю, что вы обнаружите, что объект групповой политики не указан там и, как таковой, не обрабатывается.
Где вы связали созданный вами объект групповой политики, который определяет сценарий запуска?
Изменить 2:
Итак, вы видите путь к вашему сценарию в узле «Сценарии (запуск / завершение)» в RSoP. У вас должна быть колонка «Последний казненный». Если там указана дата / время, значит, клиент групповой политики попытался выполнить ваш сценарий. Если время не указано, значит, он не пытался его выполнить.
Надеюсь, вы просмотрели журнал событий приложений и убедились, что при выполнении сценария не регистрируются какие-либо ошибки. Если нет, посмотрите туда.
Предполагая, что сценарий выполняется, я бы подумал о добавлении строки, чтобы оставить какую-то «отметку» на компьютере, чтобы точно убедиться, что сценарий выполняется. Что-то вроде echo foo > %TEMP%\foo.txt
предоставит вам файл в общесистемном каталоге% TEMP% (обычно "C: \ WINDOWS \ TEMP"), который убедительно скажет вам, выполняется ли сценарий. Я начинаю подозревать, что ваш скрипт выполняется, но системный контекст компьютера по какой-то причине не может получить доступ к EXE, который вы пытаетесь выполнить.
Поскольку вы не войдете в систему во время выполнения скрипта, в нем не будет той же среды, что и при входе в систему. Переменные% могут не работать и т. Д. Убедитесь, что все пути являются локальными полными путями, поскольку он выиграл у меня нет доступа к сетевым ресурсам, так как он работает под учетной записью компьютера, как сказал Эван.
Если вы запускаете это только на одном компьютере, рассмотрите возможность использования запланированных задач, а не GPO, который имеет лучшую регистрацию для таких вещей, и вы можете запустить его как учетную запись пользователя по вашему выбору. Вы даже можете отправлять запланированные задачи (и сам файл .cmd) на компьютеры через объекты групповой политики, используя настройки групповой политики.