Windows скрипт при загрузке

Автоматически запускать скрипт при входе в Windows

Как я могу автоматически запустить скрипт при входе в 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, чтобы упростить поиск имен целевых групп.

Читайте также:  Replace string linux all files

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

Скопируйте и вставьте или введите следующее:

В меню Файл выберите Сохранить как.

  • В разделе Сохранить в выберите каталог, соответствующий общей папке Netlogon контроллера домена (обычно SystemRoot \ SYSVOL \ Sysvol \ DomainName \ Scripts, где DomainName — полное доменное имя домена).
  • В поле Тип файла выберите Все файлы.
  • В поле «Имя файла» введите имя файла, затем .vbs и нажмите «Сохранить». WSH использует расширение .vbs для идентификации файлов, содержащих команды VBScript.
  • Запуск PowerShell скриптов с помощью GPO

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

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

    Запустите консоль управления доменными политиками — GPMC.msc (Group Policy Management сonsole), создайте новую политику и назначьте ее на нужный контейнер с пользователями или компьютерами (можно использовать WMI фильтры GPO для более тонкого нацеливания политики). Перейдите в режим редактирования политики.

    Вы должны выбрать раздел 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.

    Читайте также:  Mac volume on windows

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

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

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

    Если вы запускаете несколько 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 скриптов, вы можете запускать 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 %

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

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

    Автозапуск скрипта

    Нужно добавить .bat скрипт в автозагрузку, но он должен выполнятся до того как пользователь залогинится.

    Прописывая в реестре он либо запускаестя после логина, либо вообще не запускается.

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

    Если Вам помогли предложенные рекомендации, пожалуйста, помечайте их, как ответ. Это поможет другим пользователям быстрее найти решение. Все, указанное выше, является моим личным мнением.

    1 пользователь нашел этот ответ полезным

    Был ли этот ответ полезным?

    К сожалению, это не помогло.

    Отлично! Благодарим за отзыв.

    Насколько Вы удовлетворены этим ответом?

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

    Насколько Вы удовлетворены этим ответом?

    Благодарим за отзыв.

    Доброго времени суток. Заходите на рабочую станцию, запускаете gpedit.mscКонфигурация компьютера -> Конфигурация Windows -> Сценарии (запуск/завершение) -> Автозагрузка. Во вкладке «Сценарии» добавляете Ваш BATCH-файл. Этот скрипт будет выполняться до того как пользователь залогинится в систему.

    11 польз. нашли этот ответ полезным

    Был ли этот ответ полезным?

    К сожалению, это не помогло.

    Отлично! Благодарим за отзыв.

    Насколько Вы удовлетворены этим ответом?

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

    PowerShell и другие скрипты

    Поиск

    Календарь постов

    Октябрь 2008
    Пн Вт Ср Чт Пт Сб Вс
    1 2 3 4 5
    6 7 8 9 10 11 12
    13 14 15 16 17 18 19
    20 21 22 23 24 25 26
    27 28 29 30 31

    Категории

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

    Как оказалось задачка из заголовка не так то просто реализуется. Вроде было бы логично если бы программы из HKLM:\Software\Microsoft\Windows\CurrentVersion\Run или RunOnce запускались бы при включении компьютера, ан нет — они стартуют при входе под учетной записью с административными полномочиями. Так что приходится искать другие пути.

    Например стартап скрипт из групповых/локальных политик. Этот метод работает, но к сожалению сложновато создать политику из скрипта. Даже локальная политика состоит из немалого количества ключей, создавать которые с помощью reg.exe замучаешься, а импортировать — это уже отдельный .reg файл, что IMHO не слишком красиво ради такой простой (казалось бы) задачки…

    В итоге из более менее «красивых» способов нашел только использование планировщика заданий. С помощью утилиты schtasks.exe (доступна на xp/2k3 и выше) добавить задачу, и указать выполнение при загрузке системы. Ну и до кучи я использовал учетную запись System (так как мне был необходим доступ на сетевые ресурсы, а соответственно программа должна использовать учетную запись компьютера из AD).

    Эту строчку уже не стыдно использовать в скрипте. Ну и если достаточно выполнить задачу однократно, то можно после запуска удалить её:

    Читайте также:  Windows task manager processes cpu usage
    Оцените статью