Вопрос или проблема
Я пытаюсь протоколировать использование моего ПК дома.
Я запускаю startTime.bat
в консоли Windows mmc через политику -> конфигурация компьютера -> Windows -> скрипты (запуск/выключение) -> запуск
startTime.bat
:
date /t >> startTime.txt
time /t >> startTime.txt
Скрипт, казалось, работал в начале, но теперь он работает только sporadic, пропуская дни, когда я точно знаю, что включал и выключал свой ПК.
Что мне нужно сделать, чтобы убедиться, что моя программа будет записывать данные в один и тот же файл каждый раз, и время и дата могли быть выполнены?
Мне нужно ждать, пока другие программы загрузятся или станут исполняемыми каким-либо образом? И если да, как мне это сделать?
Действительно ли тот способ, которым я это сделал, может выполнять задачу с надежностью? Или быстрое загрузка Windows чаще всего как-то мешает выполнению этого скрипта?
Будет ли место shell:startup более надежным? У меня были проблемы и там в прошлом с программой, которая нуждалась в звуковых файлах и не могла их надежно загрузить, иногда происходил случайный сбой.
Ответ или решение
Для того чтобы обеспечить надежную запись времени и даты начала работы вашего ПК в один и тот же файл, необходимо учесть несколько факторов. Рассмотрим ваши вопросы и предложим конкретные рекомендации.
-
Проблема с выполнением сценария: Скрипты, выполняемые при запуске системы, могут не всегда срабатывать должным образом, особенно если другие программы или системы еще не завершили свою загрузку. В случае с Windows Fast Boot, ваш компьютер может загружаться быстрее, что иногда затрудняет выполнение ваших скриптов.
-
Рекомендуемое решение: Вместо того чтобы использовать групповые политики, попробуйте использовать Планировщик заданий Windows (Task Scheduler), который предоставляет более гибкие настройки.
- Откройте "Планировщик заданий" и создайте новую задачу.
- Установите триггер "При входе в систему".
- Убедитесь, что в параметрах задачи выбрана опция "Запустить с наивысшими правами".
- В разделе "Действия" добавьте вашу команду на выполнение файла
startTime.bat
.
-
Изменение скрипта: Вместо простой записи только текущей даты и времени, вы можете изменить скрипт, чтобы он также записывал имя компьютера или другую информацию для лучшего логирования. Например:
@echo off echo %date% %time% >> startTime.txt
-
Задержка перед выполнением: Если вы хотите добавить задержку, чтобы дать время для загрузки других программ, вы можете использовать команду
timeout
в вашем скрипте. Например:@echo off timeout /t 30 /nobreak >nul echo %date% %time% >> startTime.txt
Эта команда установит 30-секундную задержку перед записью, что может помочь избежать проблем, связанных с быстрой загрузкой.
-
Контроль над доступом к файлу: Убедитесь, что файл
startTime.txt
доступен для записи, а у вашей учетной записи достаточно прав для его изменения. Возможно, стоит задать полный путь к файлу для избежания путаницы с рабочей директорией. -
Использование
shell:startup
: Если вы хотите использоватьshell:startup
, помните, что это может быть менее надежный метод, так как некоторые программы также выполняются из этого места, и это может вызвать конфликты. Рекомендуется по возможности использовать Планировщик задач.
Этот подход позволит вам обеспечить более надежный механизм регистрации времени работы вашего компьютера. Если у вас будут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.