Запуск логон скриптов PowerShell с помощью GPO | Windows для системных администраторов

Запуск логон скриптов PowerShell с помощью GPO

Многие администраторы для достижения различных задач широко используют возможности групповых политики по запуску логон/логоф скриптов. Помимо классических bat, cmd, vbs и т.п. скриптов, с помощью GPO можно запускать также и PowerShell скрипты. Разберемся, как это настроить.

В том случае, если на всех клиентах домена используется ОС не менее, чем Windows 7 и Windows Server 2008 R2, в GPO имеется отдельный «родной» модуль для запуска PowerShell скриптов.

Для этого в консоли управления GPMC.msc (Group Policy Management Console) создайте новую политику и назначьте ее на нужный контейнер с пользователями или компьютерами. Переключитесь в режим редактирования политики и перейдите в один из разделов (в зависимости от того, должен ли скрипт PowerShell запускаться при загрузке/выключении ОС либо при входе/выходе пользователя).

  • Computer Configuration -> Policies -> Windows Settings -> Scripts (Startup / Shutdown)
  • User Configuration -> Policies -> Windows Settings -> Scripts (Logon / Logoff)

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

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

Чтобы скопировать файл скрипта, нажмите на кнопку Show Files и перетяните файл с PowerShell скриптом (расширение ps1) в открывшееся окно (это каталог Scripts\Startup в соответствующей политике, находящийся в каталоге Sysvol на контроллере домена).

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

запустить сценарий ps1 из GPOВ общем-то все. Осталось перезагрузить клиентский компьютер и проверить отработку скрипта.

Что нужно отметить. Скрипты PowerShell, запускаемые таким образом через групповые политики, отработают в любом случае, в не зависимости от текущих настроек политики запуска сценариев PowerShell, которая определена командой Set-ExecutionPolicy или соответствующей политикой. Не имеет значения, подписан скрипт или нет, он будет отрабатывать в режиме Bypass.

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

%windir%\System32\WindowsPowerShell\v1.0\powershell.exe

С параметрами

-Noninteractive -ExecutionPolicy Bypass –Noprofile -file %~dp0MyPSScript.ps1

powershell.exe -Noninteractive -ExecutionPolicy Bypass Как вы видите, в данном случае приходится принудительно разрешать запуск ненадежных скриптов, указывая параметр Bypass.

Еще записи по теме: Group Policy, PowerShell
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 2

Оставить комментарий
  1. Дмитрий | 04.09.2017

    Скрипт запустится в режиме bypass независимо от того где он лежит, в папке с политикой или в какой нибудь шаре?

    Ответить
    • Юра | 11.09.2017

      Да, ведь ExecutionPolicy это атрибут сессии, которую мы запускаем, а не файла.

      Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.4MB/0.00037 sec