Изпълнение на скриптове на PowerShell с помощта на GPO

Политиките на групата на прозорците ви позволяват да стартирате различни файлове със скрипт, когато компютърът се стартира / изключва и потребителят влиза в / изход. Използвайки GPO, можете да изпълнявате не само класически файлове на скриптове (.bat, .cmd ,, vbs) на компютри с домейни, но и скриптове на PowerShell (.ps1), както и Startup / Shutdown / Logon / Logoff

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

Преди Windows 7 и Windows Server 2008 R2 не можете да изпълните директно PowerShell файлове от GPO (трябваше да извикате ps1 файлове от файлове с прилеп като параметър към изпълнимия файл powershell.exe).

Стартирайте конзолата за управление на политики за домейни - GPMC.msc (Конзола за управление на групови политики), създайте нова политика и я присвойте към желания контейнер с потребители или компютри (можете да използвате GPM филтри WMI за по-фина целева политика). Превключете в режим на редактиране на правилата.

Трябва да изберете GPO раздел, за да стартирате скрипта PowerShell, в зависимост от това кога искате да стартирате скрипта си.

  • Ако PS скриптът трябва да бъде стартиран, когато потребителят влезе в компютъра (задаване на параметрите на средата на потребителя, програми, например: когато влезете в потребителя, автоматично ще създадете подпис в Outlook въз основа на данни от потребителя на AD, конфигуриране на екрана или стартиране на настройките на екрана) или когато потребителят излезе , трябва да отидете в секцията за GPO: потребител Конфигурация -> Политики -> Windows Настройки -> Сценарии (Logon / Излизане);
  • Ако искате да стартирате скрипта PowerShell, когато компютърът се стартира (деактивиране на остарели протоколи: NetBIOS, SMBv1, конфигуриране на настройки за сигурност на компютъра и т.н.) или преди да изключите правилно компютъра, трябва да отидете в секцията GPO с настройките на компютъра: Конфигурация на компютъра -> Политики -> Настройки на Windows -> Скриптове (Стартиране / изключване).

Изпълнение на скрипт на PowerShell при стартиране на компютъра с помощта на групови правила

Да кажем, че трябва да стартираме скрипт на PowerShell при зареждане на Windows. За да направите това, изберете Startup и в прозореца, който се отваря, отидете на раздела PowerShell Scripts.

Сега трябва да копирате файла със своя скрипт PowerShell в контролера на домейна. Кликнете върху бутона Показване на файлове и плъзнете файла със скрипта PowerShell (ps1 разширение) в отворения прозорец на Explorer (конзолата автоматично ще отвори директорията \\ yourdomain \ SysVol \ yourdomain \ Policies \ Here_GUID_Your_GPO \ Machine \ Scripts \ Startup вашата политика в директорията SysVol на най-близкия контролер на домейн).

защото конфигурираме стартиране на скрипта Startup PowerShell, трябва да проверим NTFS разрешенията за четене и изпълнение (четене и изпълнение) за групата в разрешенията на файла ps1 (или цялата директория Machine \ Scripts \ Startup) Компютри с домейни.

Сега трябва да натиснете бутона Добави и добавете копирания файл със скрипт ps1 в списъка на скриптове, стартирани от политиката на PowerShell.

Ако стартирате няколко скрипта на PowerShell чрез GPO, можете да контролирате поръчката от самото начало, като използвате бутоните Up / Down.

За правилното изпълнение на скриптове PowerShell при стартиране на компютъра, трябва да конфигурирате времето за забавяне, преди да започнете да използвате политиката в секцията Компютърна конфигурация -> Административни шаблони -> Система -> Групова политика. Активиране на политиката Конфигуриране Logon писменост закъснение (Задайте закъснението за скрипта за вход) и посочете забавянето в минути преди стартиране на скриптове за влизане (достатъчно за завършване на инициализацията и изтегляне на всички необходими услуги). Обикновено достатъчно, за да се сложи тук 1-2 минути.

По подразбиране скриптове PowerShell не са разрешени в настройките за защита на Windows. Стойността на текущата настройка на политиката за скриптове на PowerShell може да бъде получена с командата получавам-ExecutionPolicy. Ако правилото не е конфигурирано, командата ще върне Ограничено (всички скриптове ще бъдат блокирани). Настройките за защита за стартиране на скрипт на PowerShell могат да бъдат конфигурирани чрез „Активиране на скриптове“ / „Превърнете за писменост изпълнение”(Под GPO компютърна конфигурация -> Административни шаблони -> Компоненти на Windows -> Windows PowerShell). Възможни стойности на политиката:

  • Позволете само подписан скриптове (AllSigned) - могат да се изпълняват само подписани скриптове на PowerShell („Как да подпиша PowerShell скрипт?“) - най-добрият сценарий за сигурност;
  • Позволете местен скриптове и отдалечен подписан скриптове (RemoteSigned) - можете да стартирате всякакви локални и подписани отдалечени скриптове;
  • Позволете всички скриптове (неограничен) - най-опасният вариант, защото Позволява стартиране на всякакви PowerShell скриптове.

Ако не ви подхожда нито един от предложените сценарии за настройка на политиката за стартиране на скриптове на PowerShell, можете да стартирате скриптове PowerShell в режим байпас (скриптове не са блокирани, предупрежденията не се появяват).

За да направите това, скриптът PowerShell трябва да се стартира от секцията Startup -> Scripts. В този раздел можете да конфигурирате ps1 скрипта да се изпълнява чрез създаване на обикновен Startup скрипт, който стартира изпълнимият файл powershell.exe (подобно на скрипта, описан в статията). посочете:

  • Име на скрипта: % windir% \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe
  • Параметри на скрипта: -Неинтерактивен -ExecutionPolicy Bypass -Noprofile -file% ~ dp0MyPSScript.ps1

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

В този случай вие активирахте насила стартирането на всеки (дори ненадежден) скрипт на PowerShell, използвайки параметъра Bypass.