Запуск скрипта при включении компьютера

Обновлено: 06.07.2024

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

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

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

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

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

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

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

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

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

больше:

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

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

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

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

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

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

Как я могу автоматически запустить скрипт при входе в Windows?

Я хотел бы запускать что-то вроде этого всякий раз, когда я захожу в свой компьютер:

Бонусом будет возможность запускать один и тот же скрипт всякий раз, когда я разблокирую экранную заставку.

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

Вы можете создать запланированное задание, которое будет запускаться, когда ваш компьютер разблокирован:

  1. Пуск> Администрирование> Планировщик задач
  2. левая панель: выберите библиотеку планировщика заданий
  3. правая панель: нажмите «Создать задачу» (ПРИМЕЧАНИЕ: это единственный способ получить правильный триггер)
  4. в диалоговом окне Создать задачу:
    • Вкладка «Общие» - укажите название вашей задачи
    • Вкладка «Триггеры» - нажмите «Создать» и выберите «Разблокировать на рабочей станции».
    • Вкладка «Действие» - нажмите «Создать» и нажмите «Обзор»…, чтобы найти сценарий
    • Вкладка «Условия» - снимите флажок Запускать задание, только если компьютер подключен к сети переменного тока

Также я подправил путь в скрипте для чтения

Если у вас уже есть скрипт:

Чтобы назначить сценарий входа пользователю или группе

  • Откройте Управление компьютером.
  • В дереве консоли щелкните Пользователи.

Где? Системные инструменты / Локальные пользователи и группы / Пользователи

  • Дважды щелкните пользователя, которому вы хотите назначить сценарий входа.
  • Нажмите вкладку Профиль.
  • В поле «Сценарий входа» введите путь и имя сценария входа, который вы хотите назначить этому пользователю, и нажмите кнопку «ОК».

Создание сценариев входа

Вы можете использовать сценарии входа в систему, чтобы назначать задачи, которые будут выполняться, когда пользователь входит в систему на определенном компьютере. Сценарии могут выполнять команды операционной системы, устанавливать системные переменные среды и вызывать другие сценарии или исполняемые программы. Семейство Windows Server 2003 поддерживает две среды сценариев: командный процессор запускает файлы, содержащие команды пакетного языка, а Windows Script Host (WSH) запускает файлы, содержащие команды Microsoft Visual Basic Scripting Edition (VBScript) или Jscript. Вы можете использовать текстовый редактор для создания сценариев входа. Некоторые задачи, обычно выполняемые сценариями входа в систему:

  • Сопоставление сетевых дисков.
  • Установка и настройка принтера по умолчанию для пользователя.
  • Сбор информации о компьютерной системе.
  • Обновление вирусных сигнатур.
  • Обновление программного обеспечения.
  • В следующем примере сценарий входа в систему содержит команды VBScript, которые используют Active Directory
  • Сервисные интерфейсы (ADSI) для выполнения трех общих задач, основанных на членстве пользователя в группе:

Он сопоставляет диск H: с домашним каталогом пользователя, вызывая метод MapNetworkDrive объекта сети WSH в сочетании со свойством UserName объекта сети WSH. Он использует объект ADSI IADsADSystemInfo для получения отличительного имени текущего пользователя, которое, в свою очередь, используется для подключения к соответствующему объекту пользователя в Active Directory. Как только соединение установлено, список групп, членом которых является пользователь, извлекается с использованием атрибута memberOf пользователя. Многозначный список имен групп объединяется в одну строку с помощью функции Join VBScript, чтобы упростить поиск имен целевых групп.

Если текущий пользователь является членом одной из трех групп, определенных в верхней части сценария, сценарий сопоставляет диск G: пользователя с общим диском группы и устанавливает принтер по умолчанию для пользователя в качестве принтера группы. Чтобы создать пример сценария входа

date

03.06.2020

directory

PowerShell, Групповые политики

comments

комментариев 6

Групповые политики Window позволяют запускать различные файлы скриптов при загрузке/ завершении работы компьютера, входе/выходе пользователя. С помощью GPO вы можете исполнять на компьютерах домена не только классические файлы скриптов (.bat, .cmd, ,vbs), но и Startup/Shutdown/Logon/Logoff скрипты PowerShell (.ps1)

В современных операционных системах (Windows 10 / Windows Server 2016) вы можете настраивать запуск логон/логоф скриптов на PowerShell напрямую из редактора GPO.

До Windows 7 и Windows Server 2008 R2 нельзя было напрямую выполнять PowerShell файлы из GPO (приходилось вызывать ps1 файлы из bat файлов в качестве параметра исполняемого файла powershell.exe).

Вы должны выбрать раздел GPO для запуска PowerShell скрипта в зависимости от того, когда вы хотите выполнить ваш скрипт.

  • Если PS скрипт должен быть запущен при входе пользователя на компьютер (настройка параметров окружения пользователя, программ, например: вы хотите при входе пользователя автоматическое создавать подпись в Outlook на основе данных из пользователя AD, настроить параметры экранной заставки или стартового экрана) или при выходе пользователя, вам нужно перейти в раздел GPO: UserConfiguration-> Policies-> WindowsSettings-> Scripts(Logon/ Logoff);
  • Если вы хотите запускать скрипт PowerShell при загрузке компьютера (отключение устаревших протоколов: NetBIOS, SMBv1, настройка параметров безопасности компьютера и т.д.) или перед корректным выключением компьютера, вам нужно перейти в секцию GPO с настройками компьютера: Computer Configuration -> Policies -> Windows Settings -> Scripts (Startup / Shutdown).

Запуск PowerShell скрипта при загрузке компьютера с помощью групповой политики

Допустим, нам нужно запускать PowerShell скрипт при загрузке Windows. Для этого нужно выбрать Startup и в открывшемся окне перейди на вкладку PowerShell Scripts.

Запус скриптов PowerShell при загрузке компьютера групповыми политиками

Теперь нужно скопировать файл с вашим PowerShell скриптом на контроллер домена. Нажмите на кнопку Show Files и перетяните файл с PowerShell скриптом (расширение ps1) в открывшееся окно проводника (консоль автоматически откроет каталог \\yourdomain\SysVol\yourdomain\Policies\\Machine\Scripts\Startup вашей политики в каталоге SysVol на ближайшем контроллере домена).

копирование скрипта powershell на sysvol

Т.к. мы настраиваем запуск Startup скрипта PowerShell, нужно в разрешениях ps1 файла (или всего каталога Machine\Scripts\Startup) проверить NTFS права доступа на чтение и выполнение (Read & Execute) для группы Domain Computers .

ntfs разрешения на stratup скрипт powershell в sysvol для Domain Computers

Теперь нужно нажать кнопку Add и добавить скопированный файл скрипта ps1 в список запускаемых политикой PowerShell скриптов.

запустить сценарий ps1 из GPO

Если вы запускаете несколько PowerShell скриптов через GPO, вы можете управлять порядком из запуска с помощью кнопок Up/Down.

Для корректного выполнения скриптов PowerShell при загрузке компьютера нужно настроить время задержки перед запуском с помощью политики в разделе Computer Configuration -> Administrative Templates -> System -> Group Policy. Включите политику Configure Logon Script Delay (Настроить задержку сценария входа в систему) и укажите задержку в минутах перед запуском логон-скриптов (достаточное для окончании инициализациии и загрузки всех необходимых служб). Обычно достаточно поставить здесь 1-2 минуты.

По умолчанию в настройках безопасности Windows запрещен запуск PowerShell скриптов. Значение текущей настройки политики запуска сценариев PowerShell можно получить командой Get-ExecutionPolicy. Если политика не настроена, команда вернет Restricted (блокируются любые скрипты). Параметры безопасности запуска PowerShell скриптом можно настроить через политику “Включить выполнение сценариев” / “Turn On Script Execution” (в разделе GPO Computer Configuration -> Administrative Templates -> Windows Components -> Windows PowerShell). Возможные значения политики:

  • Allowonlysignedscripts (AllSigned)– можно запускать только подписанные скрипты PowerShell (“Как подписать скрипт PowerShell?”) –самый лучший сценарий с точки зрения безопасности;
  • Allowlocalscriptsandremotesignedscripts (RemoteSigned)– можно запускать любые локальные и подписанные удаленные скрипты ;
  • Allowallscripts (unrestricted) – самый небезоапасный вариант, т.к. разрешает запуск любых PowerShell скриптов.

политика запуска powershell скриптов Turn On Script Execution

Если вам не подходит не один из предложенных сценариев настройки политики запуска PowerShell скриптов, вы можете запускать PowerShell скрипты в режиме Bypass (скрипты не блокируются, предупреждения не появляются).

Для этого PowerShell скрипт нужно запускать из секции Startup -> Scripts. В этой секции вы можете настроить запуск ps1 сценария с помощью создания обычного Startup скрипта, запускающего исполняемый файл powershell.exe (по аналогии со сценарием, описанным в статье). Укажите:

  • Script name: %windir%\System32\WindowsPowerShell\v1.0\powershell.exe
  • Script Parameters: -Noninteractive -ExecutionPolicy Bypass –Noprofile -file %

powershell.exe -Noninteractive -ExecutionPolicy Bypass

dp0 при запуске на клиенте автоматически преобразуются в UNC путь до каталога со скриптом на SYSVOL.

В данном случае вы принудительно разрешили запуск любого (даже ненадежного) скрипта PowerShell с помощью параметра Bypass.

Добрый день. Прошу прощения если пишу не в ту ветку форума. Нужна ваша помощь в написании скрипта который мог бы запускать определенный exe файл в зависимости от времени на компьютере. К сожалению я сам работал очень мало со скриптами и сам написать такой не смогу

Подробнее о задаче: допустим включается компьютер с 8 утра и до 5 вечера в любое время в этот момент должен запуститься файл 1.exe, и он же должен сам закончить свое выполнение часов в 16:30 а Если компьютер включается с 0 часов до 7 утра то должен запуститься файл 2.exe. и так же закончить свое выполнение часов в 6 утра. Предполагается что данный скрипт будет запускаться планировщиком задач при включении компьютера. оба файла лежат по пути (C:\Program Files\cpustats)

Помогите пожалуйста. Очень нужно для работы

Если нужны доп. данные пишите. Заранее большое спасибо

Конфигурация компьютера
Процессор: Intel(R) Core(TM) i3 CPU M 370 2.40GHz, ядер: 2, логических процессоров: 4
Память: 8,00 ГБ
ОС: Windows 10 Pro x64
p.igor.kin,
в том же планировщике делаете задачу на запуск 1.exe вместе с вкл компа и завершить задачу в 16:30
по аналогии для 2.exe

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

в том же планировщике делаете задачу на запуск 1.exe вместе с вкл компа и завершить задачу в 16:30
по аналогии для 2.exe »

Извините пожалуйста а как сделать в планировщике 1 задачу для старта при включении компа и завершить её в 16:30 так что бы эта задача работала каждый день? Там есть такой пункт завершить задачу но там ставиться число и время, тоесть эта задача отработает 1 раз

И самое главное как в планировщике задать запуск 1.exe с 8 до 17 в любове время и запуск 2.exe с 0 до 7 ?

Последний раз редактировалось p.igor.kin, 29-06-2017 в 13:23 .

Не понимаю. Запускать при включении? Или после включения в неопределённое случайное время? »
Компьютер может быть включен как в 8 часов так в 9,10, 11 и т.д. Дак вот нужно что бы скрипт запускался при включении компьютера(это я планирую сделать через планировщик или поставить тупо в автозагрузку) Дальше скрипт должен смотреть сколько времени на компьютере и уже в зависимости от времени запускать файл либо 1.exe либо 2.exe p.igor.kin, если компьютер включили до восьми часов, 1.exe вообще не должен запускаться?
Конфигурация компьютера
Процессор: Intel(R) Core(TM) i3 CPU M 370 2.40GHz, ядер: 2, логических процессоров: 4
Память: 8,00 ГБ
ОС: Windows 10 Pro x64
а сколько времени нужно для работы, например, 1.exe, если компьютер включили в 16:25, хватит 5ти минут ему, ведь в 16:30 он должен быть остановлен и вопрос Busla тоже актуален. p.igor.kin, В Вашей проблеме 2 задачи.
1. В зависимости от времени включения компьютера необходимо при включении запустить ту или иную программу. Это делает один скрипт и это одна задача в планировщике при включении.
2. В заданное время необходимо завершить указанную программу. Это сделает другой скрипт и это вторая задача планировщика. Если таких программ несколько, то на завершение каждой необходимо задание в планировщике на каждую задачу.
ИМХО, проще это реализовать vbs-скриптами.
Задача 1. Запускаем предметную программу в зависимости от того, когда запущен скрипт. Скрипт поместить в планировщик на включение. Пропишите вместо моих примеров реальные экзешники и диапазоны времени запуска. Сохраните скрипт в файл с расширением .vbs, например, Starter.vbs. Создайте на него задание в планировщике.
Возможно, в планировщике его надо запускать как, например:
C:\Windows\System32\wscript.exe Диск:\Путь\Starter.vbs Задача 2 (3). Принудительно завершаем указанный процесс. Для каждого - отдельное задание в планировщике. Сохраните скрипт в файл с расширением .vbs, например, ProgKill.vbs. Запускать его надо с параметром, например:
Диск:\Путь\ProgKill.vbs "notepad.exe".
Создайте на него задание в планировщике на нужное время.
Возможно, в планировщике его надо запускать как, например:
C:\Windows\System32\wscript.exe Диск:\Путь\ProgKill.vbs "notepad.exe"
На каждую программу задание в планировщике
а Если компьютер включается с 0 часов до 7 утра то должен запуститься файл 2.exe. и так же закончить свое выполнение часов в 6 утра »
В Вашей постановке нет логики: если, согласно утверждению, задача запустится в 6час 1 мин, то её никаким образом не убить в 6 часов
Поэтому надо чётко продумать хронологию событий: нельзя запускать программу после того, как Вы декларировали её завершение.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Последний раз редактировалось megaloman, 29-06-2017 в 21:41 .

p.igor.kin, Пытаюсь переосмыслить постановку, чтобы ограничиться одним скриптом и одним заданием в планировщике:
С 8 утра и до 16.30 вечера должна обязательно выполняться программа 1.exe, до 8.00 и после 17.00 её не должно быть.
Таких программ может быть несколько со своими интервалами работы и временем завершения.
Вот скрипт, который надо поместить в планировщик и в планировщике повторять его с интервалом, допустим, 5 мин.

бремени, времени, семени, темени, пламени, стремени, знамени, племени, имени, вымени

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Последний раз редактировалось megaloman, 17-07-2017 в 16:57 .

Друзья простите пожалуйста за долгое отсутствие уезжал в отпуск. Посмотрел то что вы тут накидали (варианты,идеи) не очень конечно понял. Может я так плохо объяснил а может скрипт такой сложный. Давайте поступим немного по другому.

Задача: Пользователь включает компьютер (это может быть в любое время) Нужен скрипт который при включении компьютера будет смотреть сколько времени на компьютере и будет запускать нужную программу. Предполагается что данный скрипт будет лежать по пути (C:\Program Files\cpustats и иметь название cpustats.vbs) и в планировщике будет создана задача:

Тригер: при запуске системы
Действие: запуск программы (C:\Program Files\cpustats\cpustats.vbs)

Условия запуска программ:

Если время с 8:00 до 18:00 то запустить программу (C:\Program Files\cpustats\dau\cpustats.exe)
Если время с 20:00 до 6:00 то запустить программу (C:\Program Files\cpustats\night\cpustats.exe)

На данный момент воспользовался скриптом пользователя megaloman за что ему огромное спасибо. ниже выкладываю поправленый скрипт под мои условия. Сохранил его как cpustats.vbs

Здравствуйте.

Сделать это позволяет планировщик заданий — встроенное приложение в Windows для планирования различных действий. Это достаточно функциональный инструмент, и позволяет решать многие задачи (можно серьезно облегчить себе "жизнь" и ускорить работу за ПК).

Собственно, в рамках этой заметки я хочу показать один из вариантов работы с планировщиком — поставим ему задачу запустить определенный исполняемый файл в нужное нам время.

Пример настройки планировщика заданий

Чтобы открыть планировщик заданий — можно прибегнуть к неск. способам:

Поиск - планировщик заданий (Windows 11)

Поиск - планировщик заданий (Windows 11)

Создать задачу - планировщик заданий

Создать задачу - планировщик заданий

Для кого выполнять задачу

Для кого выполнять задачу

Затем нужно перейти во вкладку "Триггеры" — и нажать по кнопке "создать" .

Именно здесь будет задаваться время (и условие), при котором планировщик выполнит задание (например, запустит программу/скрипт).

Примечание : если вам нужно запускать задачу при каждом включении компьютера — вместо "По расписанию" укажите вариант "При входе в систему" , здесь я рассказывал про автозагрузку подробнее.

Триггеры - когда выполнять задачу, расписание

Триггеры - когда выполнять задачу, расписание

Обратите внимание, что есть много разных вариантов триггера

Обратите внимание, что есть много разных вариантов триггера

Следующий шаг — вкладка "Действия" . В ней нам нужно указать само действие, например, "Запуск программы"* , и тот BAT- или EXE-файл (программу), которую нужно запустить (разумеется, можно также добавить необходимые аргументы // если это требуется -> см. справку к своей программе).

В своем примере я просто указал расположение нужного мне скрипта (BAT'ника).

Задаем действия

Обратите внимание, что во вкладке "Условия" можно задать интересные функции:

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

Условия

Во вкладке "Параметры" можно добавить еще некоторые полезные опции: выполнять ли задачу при сбое, как быстро ее останавливать, запускать ли ее повторно и пр. В своем примере я оставил все галочки, которые стояли по умолчанию.

Параметры

Наша задача теперь есть в списке!

Наша задача теперь есть в списке!

В назначенную минуту (при соблюдении заданных условий) — вы заметите, как автоматически запустится нужный вам файл. (кстати, при первичной настройке рекомендую расписание запуска настроить так, чтобы планировщик отработал при вас \\ для проверки).

Читайте также: