- Выполнение сценариев powershell по расписанию
- Запуск powershell скрипта в автозагрузке сервера
- Запуск powershell скрипта для пользователя
- Запуск программы при включении компютера?
- Запуск скриптов в windows server 2022 r2 windows 8.1 и выше
- Как сделать запуск сценария при входе в систему?
- Методы запуска скрипта powershell через gpo
- Постановка задачи
Выполнение сценариев powershell по расписанию
Тут все просто, если вы хотите средствами групповой политики запускать скрипты PowerShell по расписанию, то вам нужно создать задание в шедуллере. Для этого есть ветки GPO:
Указываем в задании нужное время, имя и сетевой путь до скрипта.
Как видите все просто. С вами был Иван Семин, автор и создатель IT портала overcomp.ru.
Запуск powershell скрипта в автозагрузке сервера
Открываем оснастку «Управление групповой политикой» и создаем на нужном уровне вашей иерархии организационных подразделений, новую политику, в моем примере, это будет «Добавление баз 1С». Переходим к ее редактированию.
Для того, чтобы при загрузке вашего сервера или компьютера, к нему применялся нужный вам сценарий PowerShell вам необходимо перейти в раздел:
Конфигурация компьютера — Политики — Конфигурация Windows — Сценарий (запуск/завершение) (Computer Configuration — Policies — Windows Settings — Scripts (Startup/Shutdown)
Тут вы увидите два возможных варианта «Автозагрузка» и «Завершение работы»
Далее вы открываете пункт «Автозагрузка», переходите на вкладку «Сценарий PowerShell» и нажимаете кнопку «Добавить». Через окно «добавление сценария» откройте папку «Startup» и скопируйте туда ваш скрипт. Теперь данный файл будет частью папки Sysvol и располагаться в конкретном GPO объекте.
Так же хочу отметить, что вы можете задать порядок выполнения PowerShell сценария в соответствующей области, выбрав будет ли он выполнятся после других сценариев или перед.
Еще есть ряд нюансов при использовании выполнения скриптов PowerShell средствами групповой политики:
- Во первых по умолчанию в Windows есть 5-ти минутная задержка выполнения скриптом, как ее отключать я рассказывал можете почитать вот тут.
- Если у вас в локальной сети присутствуют операционные системы по типу 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
), а какой из них запускается последний непонятно.
прочитал я этот вопрос (так сказать мой вопрос его дубликат) и понял что модераторы снова ошиблись.
всё делал по ответу
- Создаем файл
/etc/init.d/wentilation
. В нем пишем:
#!/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Делаем файл исполняемым: 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
Существует несколько сценариев позволяющих вам применять к вашим объектам нужные скрипты:
- Скрипт применяется в автозагрузке системы, в момент загрузки операционной системы
- Скрипт отработает во время входа или выхода пользователя из системы
- Ну и запуск скрипта по расписанию, такое то же имеет место быть
Постановка задачи
Когда начинающий системный администратор превращается в матерого админа, он хочет везде все автоматизировать и везде экономить свое время, и это логично люди существа любящие комфорт и лень. Рабочая среда Active Directory позволяет, как все знаете через групповые политики настройку почти всех компонентов в системе, а что не может замещается средствами PowerShell, вот такой симбиоз.