- Блог Сисадмина
- Полезная информация об администрировании пользовательских и серверных ОС Windows.
- Запуск PowerShell скрипта в автозагрузке Windows 10
- Запуск PowerShell скрипта в автозагрузке Windows 10 : 2 комментария
- Автозапуск скрипта
- PowerShell и другие скрипты
- Поиск
- Календарь постов
- Категории
- Запуск программы или скрипта при включении компьютера
- Как запускать нужную программу при старте Windows
- Простой способ добавить программу в автозагрузку
- Шаг 1: Откройте папку автозагрузки Windows
- Шаг 2: Создайте ярлык в папке Startup
- Авто-запуск программы с правами администратора
- Автозагрузка программ в Windows 10 через реестр
- Добавление/удаление программы из автозапуска из реестра
- Включение/отключение автозапуска через Диспетчере задач
- Программа для управления авто-запуском
- Запуск PowerShell скриптов с помощью GPO
- Запуск PowerShell скрипта при загрузке компьютера с помощью групповой политики
Блог Сисадмина
Полезная информация об администрировании пользовательских и серверных ОС Windows.
Запуск PowerShell скрипта в автозагрузке Windows 10
Сначала в локальной политике безопасности необходимо включить возможность запуска не подписанных скриптов. Для этого запускаем cmd от имени администратора, оттуда запускаем gpedit (или сразу запускаем gpedit.msc через «Выполнить»). Затем идем сюда:
Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Windows Powershell. Нажимаем два раза на «Включить выполнение скриптов». Выбираем «Включить», и ниже «Разрешить все».
Затем создаем cmd файл в любой папке, например C:\script\ics.cmd, такого содержания:
Где ics_reenable.ps1 — сам powershell скрипт.
И создаем в планировщике задачу, с триггером «включение компьютера» или «вход в систему».
Также при необходимости ставим галочки «запускать с наивысшими правами» и «запускать независимо от входа пользователя в систему».
Запуск PowerShell скрипта в автозагрузке Windows 10 : 2 комментария
Вопрос. Почему может не отрабатывать скрипт PowerShell из планировщика задач, если в действие указан сетевой путь? Прав хватает, ExecutionPolicy вроде тоже.
Спасибо большое. Все работает. Я всегда делаю тесты на каждом этапе. Отключил общий доступ, запустил разовый доступ, проверил — все огонь. Затем сохранил скрипт и создал cmd, запустил с правами администратора — все огонь. и т.д.
Автозапуск скрипта
Нужно добавить .bat скрипт в автозагрузку, но он должен выполнятся до того как пользователь залогинится.
Прописывая в реестре он либо запускаестя после логина, либо вообще не запускается.
Для реализации данного, Вам необходимо написать Службу, которая будет отвечать за запуск данного скрипта.
Если Вам помогли предложенные рекомендации, пожалуйста, помечайте их, как ответ. Это поможет другим пользователям быстрее найти решение. Все, указанное выше, является моим личным мнением.
1 пользователь нашел этот ответ полезным
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Доброго времени суток. Заходите на рабочую станцию, запускаете gpedit.mscКонфигурация компьютера -> Конфигурация Windows -> Сценарии (запуск/завершение) -> Автозагрузка. Во вкладке «Сценарии» добавляете Ваш BATCH-файл. Этот скрипт будет выполняться до того как пользователь залогинится в систему.
11 польз. нашли этот ответ полезным
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
PowerShell и другие скрипты
Поиск
Календарь постов
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
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
Некоторые программы Windows позволяют настроить себя так, чтобы они запускались при запуске Windows. Но такая возможность есть далеко не у всех программ. Однако запускать при старте системы можно абсолютно любую программу. Более того, при запуске можно открывать нужные папки или запускать какой-либо скрипт ( .bat ). Ниже рассмотрим как добавить программу в автозагрузку, а также как удалить программу из автозагрзуки Windows.
Простой способ добавить программу в автозагрузку
Все что нужно сделать — это добавить нужный файл (ссылка на основной .exe файл программы), папку, скрипт в папку Windows “Startup”. Для этого
- Нажмите Windows+R, чтобы открыть диалоговое окно “Выполнить”.
- Впишите в поле shell:startup, а затем нажмите Enter. Откроется папка Startup.
- Создайте ярлык в папке «Startup» для любого файла, папки или исполняемого файла приложения. Он откроется при запуске при следующей загрузке.
Этот метод будет работать с любой версией Windows, от Vista до Windows 7 и 8, и 10.
Шаг 1: Откройте папку автозагрузки Windows
Startup (автозагрузка) — это скрытая системная папка, в которую можно перейти в проводнике (при условии, что у вас включен показ скрытых файлов).
Технически эта папка находится по пути:
- Для отдельного пользователя:
C:\Пользователи\Имя_Пользователя\AppData\Roaming\Microsoft\Windows\Главное меню\Программы\Автозагрузка - Для всех пользователей:
C:\ProgramData\Microsoft\Windows\Главное меню\Программы\Автозагрузка
Однако совсем не обязательно открывать проводник искать где там эта папка находится, гораздо проще и быстрее использовать команду shell . С помощью этой команды можно открывать многие скрытые или специальные папки Windows, достаточно знать название папки.
Команду shell можно запускать прямо из диалогового окна Run .
Для этого нажмите комбинацию клавиш Windows+R, в поле ввода напишите shell:startup и нажмите Enter.
Шаг 2: Создайте ярлык в папке Startup
Теперь, чтобы запустить приложение, файл или папку вместе с Windows, нужно создать ярлык программы/папки в открытой папке Startup.
Давайте в качестве примера добавим в авто-запуск бесплатный почтовый клиент Thunderbird. Для этого нужно найти папку где находится программа. У меня она лежит в папке C:\Program Files (x86)\Mozilla Thunderbird .
Теперь нужно создать ярлык основного файла программы в папке Startup. Существуют различные способы создания ярлыков в Windows, но я поклонник супер быстрого метода «правого перетаскивания»: хватайте файл правой кнопкой мыши и удерживая её тащите в папку “Startup”. Когда вы отпустите кнопку, появится всплывающее меню с параметрами перемещения. Нажмите “Создать ярлык.”
При следующем запуске Windows приложение, файл или папка будут запущены вместе с ним.
Авто-запуск программы с правами администратора
Вариант 1
- Windows+R >Taskschd.msc. Или Пуск > Все программы > Стандартные > Служебные > Планировщик заданий .
- Создать простую задачу (кнопка в правом меню). Или Действия > Создать простую задачу.
- Откроется окно в котором настраиваем задачу:
- Вводим Имя задачи.
- Выбираем когда запускать: «При запуске компьютера».
- Выбираем какую программу запускать.
- Остальные настройки.
- После создания задачи, кликаем по ней два раза и в открывшемся окне свойств задания ставим галочку «Запускать с наивысшими правами».
- Готово!
Вариант 2 (не всегда работает)
Чтобы запускать программу как администратора по клику на иконку (ярлык), нужно установить соответствующую опцию этому ярлыку.
- Кликните правой кнопкой мышки по ярлыку и выберите пункт Свойства.
- В модальном окне нажмите кнопку Дополнительно.
- Поставьте галочку Запускать как администратор.
Автозагрузка программы с правами администратора
Автозагрузка программ в Windows 10 через реестр
Есть еще одно место, откуда Windows запускает программы — это раздел реестра Windows 10. Как правило этот раздел используется другими программами, чтобы добавить себя в авто запуск. Но мы с вами также можем добавлять или, что более важно, удалять от туда программы.
Для удаления автозапускающихся программ из реестра нужно нажать Win+R и там написать команду regedit. В открывшемся реестре перейти в одну из веток:
- Для отдельного пользователя: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run .
- Для всех пользователей: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run .
вверх
Добавление/удаление программы из автозапуска из реестра
Для удаления кликаем на ненужной программе правой кнопкой и жмем Удалить (Delete):
Для добавления кликаем правой кнопкой в пустом месте окна и жмем Создать > Строковой параметр:
После создания строкового ключа, на нем нужно кликнуть правой кнопкой и выбрать Изменить, далее нужно добавить пусть до файла программы которую нужно запустить:
Включение/отключение автозапуска через Диспетчере задач
Диспетчер задач Windows 10 содержит информацию какие программы запускаются при старте системы. Там же можно быстро включить или отключить программу из автозапуска. Добавить программу от туда невозможно.
Для управления нужно:
- Нажать Ctrl+Shift+Esc и перейти на вкладку Автозагрузка. В ней находится список программ и данные о них.
- Кликните правой кнопкой и включите/отключите авто-запуск.
Программа для управления авто-запуском
Для комплексного управления программами автозапуска есть хорошая программа:
Autorun Organizer (ссылка на сайт производителя).
Программа показывает сразу все точки автозапуска: папка автозапуска, реестр (пользователя и общий). А также показывает другую информацию о том как была запущена программа, сколько времени занял запуск и т.д.
Запуск 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.
Теперь нужно скопировать файл с вашим 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.