Как сделать запуск сценария при входе в систему? — Хабр Q&A

Выполнение сценариев powershell по расписанию

Тут все просто, если вы хотите средствами групповой политики запускать скрипты PowerShell по расписанию, то вам нужно создать задание в шедуллере. Для этого есть ветки GPO:

Указываем в задании нужное время, имя и сетевой путь до скрипта.

Как видите все просто. С вами был Иван Семин, автор и создатель IT портала overcomp.ru.

Запуск powershell скрипта в автозагрузке сервера

Открываем оснастку «Управление групповой политикой» и создаем на нужном уровне вашей иерархии организационных подразделений, новую политику, в моем примере, это будет «Добавление баз 1С». Переходим к ее редактированию.

Для того, чтобы при загрузке вашего сервера или компьютера, к нему применялся нужный вам сценарий PowerShell вам необходимо перейти в раздел:

Конфигурация компьютера — Политики — Конфигурация Windows — Сценарий (запуск/завершение) (Computer Configuration — Policies — Windows Settings — Scripts (Startup/Shutdown)

Тут вы увидите два возможных варианта «Автозагрузка» и «Завершение работы»

Далее вы открываете пункт «Автозагрузка», переходите на вкладку «Сценарий PowerShell» и нажимаете кнопку «Добавить». Через окно «добавление сценария» откройте папку «Startup» и скопируйте туда ваш скрипт. Теперь данный файл будет частью папки Sysvol и располагаться в конкретном GPO объекте.

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

Еще есть ряд нюансов при использовании выполнения скриптов PowerShell средствами групповой политики:

  1. Во первых по умолчанию в Windows есть 5-ти минутная задержка выполнения скриптом, как ее отключать я рассказывал можете почитать вот тут.
  2. Если у вас в локальной сети присутствуют операционные системы по типу Windows Server 2008 или ниже, то там есть подводные камни в виде выполнения неподписанных скриптов и во вторых в старой версии PowerShell

Хочу отметить, что начиная с Windows Server 2022 R2, Windows 8.1 и выше, все запускаемые сценарии PowerShell через GPO работают в режиме Bypass, что подразумевает игнорирование политики Set-ExecutionPolicy. Но если у вас есть более старые клиенты, то вы можете пойти вот таким путем:

Вы можете явно указать исполняемый файл PowerShell, для этого в политике откройте вкладку «Сценарии», нажмите добавить. В имя сценария введите путь до файла powerShell, это:

%windir%System32WindowsPowerShellv1.0powershell.exe

В параметрах сценария введите вот такие ключи и сетевой путь до скрипта PowerShell.

-Noninteractive -ExecutionPolicy Bypass –Noprofile -file \root.overcomp.ruSysVolroot.overcomp.ru Policies{2B79FA3E-CB2F-4D15-A446-3DBBF887CD40} MachineScriptsStartupAdd-Base-1C.ps1

Еще для подстраховки вы можете включить параметр GPO

Запуск powershell скрипта для пользователя

Чтобы применить к пользователю ваш скрипт, вам необходимо в объекте групповой политики открыть вот такую ветку:

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

запуск программы при включении компьютера !!! Именно включении, а не инициализации пользователя (когда включается bash).

При включении через СОМ порт и подгрузи баша программа отрабатывает. НО мне надо чтоб когда включился компьютер, и бо в планах не использовать CОМ порт вообще.


Хотелось бы чтоб при включении компьютера, чтоб запускалась программка при включении в операционной системе Debian 9.
Я прочёл статью о том как в линуксе можно прописать запуск программы при запуске операционной системы.

Прописывать ядро я сразу отказался да и уверен там не так всё легко как написано в статье.

решил через bash :

Самый простой автозапуск скрипта linux — это запуск с помощью bashrc.
Ваш скрипт или команда будет выполняться каждый раз, когда запускается
новая сессия терминала. Для этого добавьте адрес нужного скрипта в
файл ~/.bashrc:

$ vi ~/.bashrc
/usr/bin/local/script
export MYWAR=test

Здесь вы можете запускать на выполнение любые скрипты или команды.
Часто такой подход используется для создания псевдонимов команд,
объявления новых переменных и собственных функций.

Но как только я запустил этот файл едиственное что я мог это только его читать. Да и не совсем понятно куда вписывать

 /usr/bin/local/script # адрес скрипта
 export MYWAR=test     # имя скрипта

введите сюда описание изображения


Потом решил попробовать другой вариант

в файле /etc/rc.local прописал :

#/bin/sh -e
/kononov/initialization1/script_run
/usr/sbin/mescripts
exit 0

в файл script_run сделан исполняемым. он имеет одну строку./initialization и запускает скомпилированную программу.

Увы также не чего не вышло (((


Попробовал предложение @Total Pusher -а

введите сюда описание изображения

Увы не вышло хотя и проверял как скрипт (по отдельности также не забыл сделать его исполняемым), также и программу прогнал через chmod x (когда увидел что не запустилось).

Поправил надо было в файл nano ~/.bashrc перед командой вызова скрипта надо было перейти в директорию cd /kononov/initialization1 в которой всё будет происходить.

НО увы программа запускается только кода включается bash.

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


Вот последняя итерация, прочитал эту статью , понял что надо прописать именно в директории /ect/rc3.d но я не понял в каком именно файле, и бо их там шесть (S01cron, S01dbus, S01network-manager, S01rsync, S01rsyslog, S01ssh), а какой из них запускается последний непонятно.


прочитал я этот вопрос (так сказать мой вопрос его дубликат) и понял что модераторы снова ошиблись.

всё делал по ответу

  1. Создаем файл /etc/init.d/wentilation.
  2. В нем пишем:

    #!/bin/sh
    #chkconfig: 345 99 01
    #description: some code to load on boot
    case "$1" in
    start)
    cd /kononov/initialization1/
    ./script_run
    ;;
    stop)
    killall wentilation
    ;;
    esac
    exit 0

  3. Делаем файл исполняемым: chmod x wentilation.

    И вот тут самый прикол, в дебиан 9 нету chkconfig, Окей я говорю сейчас установим ввожу sudo apt-get install chkconfig и оказывается его нету даже в репозитории. Только потом узнаю в дебиан 9 менеджер демонов это systemctl и дебиан 9 совершенно не поддерживает chkconfig

Запуск скриптов в windows server 2022 r2  windows 8.1 и выше

Это еще один подводный камень.

По умолчанию, в версиях 2022 R2 и Windows 8.1 скрипты компьютера на запуск — имеют задержку на выполнение в 5 минут. 

Чтобы это исправить необходимо скорректировать еще один пункт в политике безопасности.

Как сделать запуск сценария при входе в систему?

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

Столкнулся с такой проблемой, ни как не могу придумать, как ее решить.

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

Компьютеры располагаются в разных юнитах.

Как я думал, будет работать, но не работает:

Я создал нужную политику, в «Конфигурация компьютера— Политики — Административные шаблоны- система- вход в систему — выполнять эти программы при входе в систему» добавил скрипт \dcNETLOGONwWWHomePage.vbs
Задача скрипта, запустится под пользователем, и в атрибут wWWHomePage занести имя компьютера, на котором залогинился пользователь.

Что бы скрипт не выполнялся на некоторых компьютерах, в разделе безопасности политики была добавлена группа безопасности, с запретом на чтение и выполнение политики. В эту группу были добавлены компьютеры, на которых не нужно выполнять данную политику.

И все это не работает. Политика применяется, но скрипт при входе в систему не запускается.
Переделал все на «Конфигурация пользователя» ( работает), но в таком случае, я не смогу регулировать применение политики на нужных компьютерах. Т.к. политика будет запускаться уже от имени пользователя.

Подскажите пожалуйста, как решить мою проблему. Спасибо за внимание 🙂

Методы запуска скрипта powershell через gpo

Существует несколько сценариев позволяющих вам применять к вашим объектам нужные скрипты:

  1. Скрипт применяется в автозагрузке системы, в момент загрузки операционной системы
  2. Скрипт отработает во время входа или выхода пользователя из системы
  3. Ну и запуск скрипта по расписанию, такое то же имеет место быть

Постановка задачи

Когда начинающий системный администратор превращается в матерого админа, он хочет везде все автоматизировать и везде экономить свое время, и это логично люди существа любящие комфорт и лень. Рабочая среда Active Directory позволяет, как все знаете через групповые политики настройку почти всех компонентов в системе, а что не может замещается средствами PowerShell, вот такой симбиоз.

Оцените статью
OverComp.ru