Вы можете использовать групповые политики для распространения запланированных заданий планировщика Windows (Task Scheduler) на компьютерах пользователей домена. Например, вы можете создать задание, которое автоматически завершит сессию пользователя/выключит компьютер пользователя в определенное время, или запустит определенный скрипт.
- В этом примере мы через Group Policy Preferences создадим и распространим на компьютеры пользователей новое задание планировщика, которое будет выводить всплывающее уведомление пользователям.Откройте консоль управления доменными групповыми политиками (gpmc.msc), создайте новую GPO и назначьте ее на Organizational Unit с пользователями или компьютерами, на которые нужно назначить задание планировщика (если вы назначаете GPO на OU с компьютерами, нужно включить параметр Configure user Group Policy Loopback Processing mode в разделе Computer Configuration -> Administrative Templates -> System -> Group Policy, см. объяснение здесь);
- Перейдите в раздел User Configuration -> Preferences -> Control Panel Settings -> Scheduled Tasks;
- Создайте новое задание планировщика New -> Scheduled task (At least Windows 7);
Пункт Immediate Task (at least Windows 7) позволяет создать задание, которое будет запущено только один раз, но максимально быстро (сразу после следующего обновления групповых политик на клиенте).
- Перед вами появится окно, похожее на стандартное окно настройки заданий планировщика Windows. Настройте параметры вашего задания;
- На вкладке General задайте Action = Update, укажите имя задания. Чтобы задание запускалось от имени пользователя укажите здесь %LogonDomain%\%LogonUser% . Для запуска задания с правами администратора, включите опцию Run with highest privileges;
Если вы создаете задание планировщика в секции GPO Computer Configuration, можно запускать задание от имени системы (NT AUTHORITY\System).
- На вкладке Triggers укажите, когда нужно запускать задание. В моем случае я хочу запускать задание ежедневно в 17:00. Выберите New -> Begin the task On a schedule -> Daily, укажите время запуска задания;
- На вкладке Actions нужно указать команду или скрипт, которое нужно выполнить через планировщик. Укажите следующие параметры задания:
Action: «Start a program»
Program/Script: C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
Add Arguments (optional): -ExecutionPolicy Bypass -command "& \\site.io\SysVol\site.io\scripts\ShowReminder.ps1"
Можно скопировать файл PS1 скрипта через GPO на компьютеры пользователей, или запускать скрипт напрямую из UNC каталога. В этом примере я запускаю PowerShell скрипт, отображающий всплывающее уведомление, из каталога SYSVOL на контроллере домена. Для обхода политики выполнения скриптов PowerShell на компьютерах пользователей, я использую параметр -ExecutionPolicy Bypass.
- Перезагрузите компьютер пользователя, чтобы применить к нему GPO. Откройте консоль Task Scheduler ( taskschd.msc ) и убедитесь, что в Task Scheduler Library появилось новое назначенное задание. Проверьте, что она отрабатывает согласно расписанию.
Можно запустить это задание планировщика вручную с помощью PowerShell команды: Start-ScheduledTask YourTaskName1
Обратите внимание, что в отличии от логон скриптов GPO, которые можно настроить на запуск только при загрузке/выключении компьютера, или входе/выходе пользователя, задания планировщика можно запускать в любое время или после наступления определенного события-триггера.