Вы можете использовать групповые политики Windows для выполнения файлов различных скриптов при загрузке/выключении компьютера или входе/выходе пользователя. С помощью GPO вы можете исполнять на компьютерах домена не только классические файлы скриптов (.bat, .cmd, ,vbs), но и Startup/Shutdown/Logon/Logoff скрипты PowerShell (.ps1)
В современных версиях Windows вы можете настроить запуск логон/логоф скриптов PowerShell напрямую из редактора групповых политик (ранее приходилось вызывать ps1 скрипты из bat файлов через параметр исполняемого файла powershell.exe).
Содержание:
- Запуск PowerShell скрипта при загрузке компьютера с помощью групповой политики
- Выполнить PowerShell скрипт при входе пользователя в Windows
Запустите консоль управления доменными политиками GPMC.msc (Group Policy Management сonsole). Создайте новую политику (GPO) и назначьте ее на нужный контейнер с пользователями или компьютерами (можно использовать WMI фильтры GPO для более тонкого нацеливания политики). Перейдите в режим редактирования политики.
Вы должны выбрать раздел GPO для запуска PowerShell скрипта в зависимости от того, когда вы хотите выполнить ваш скрипт.
- Если PS скрипт должен быть запущен при входе пользователя на компьютер (настройка параметров окружения пользователя, программ, например: вы хотите при входе пользователя автоматическое создавать подпись в Outlook на основе данных из пользователя AD, настроить параметры экранной заставки или стартового экрана) или при выходе пользователя, вам нужно перейти в раздел GPO: User Configuration -> Policies -> Windows Settings -> Scripts (Logon / Logoff);
- Если вы хотите запускать скрипт PowerShell при загрузке компьютера (отключение устаревших протоколов: NetBIOS, SMBv1, настройка параметров безопасности компьютера и т.д.) или перед корректным выключением компьютера, вам нужно перейти в секцию GPO с настройками компьютера: Computer Configuration -> Policies -> Windows Settings -> Scripts (Startup / Shutdown).
Запуск PowerShell скрипта при загрузке компьютера с помощью групповой политики
Допустим, нам нужно запускать PowerShell скрипт при загрузке Windows. Для этого нужно выбрать Startup и в открывшемся окне перейди на вкладку PowerShell Scripts.
Теперь нужно скопировать файл с вашим PowerShell скриптом на контроллер домена. Скопируйте ваш файл ps1 в каталог Netlogon на контроллере домена (например,
\winitpro.runetlogon
).
Т.к. мы настраиваем запуск Startup скрипта PowerShell, нужно в разрешениях ps1 файла (или всего каталога MachineScriptsStartup) проверить NTFS права доступа на чтение и выполнение (Read & Execute) для группы Domain Computers и/или Authenticated Users .
Теперь нужно нажать кнопку Add и укажите UNC путь к вашему файлу скрипта ps1 в Netlogon.
Если вы запускаете несколько PowerShell скриптов через GPO, вы можете управлять порядком из запуска с помощью кнопок Up/Down.
Для корректного выполнения скриптов PowerShell при загрузке компьютера нужно настроить время задержки перед запуском с помощью политики в разделе Computer Configuration -> Administrative Templates -> System -> Group Policy. Включите политику Configure Logon Script Delay (Настроить задержку сценария входа в систему) и укажите задержку в минутах перед запуском логон-скриптов (достаточное для окончания инициализации и загрузки всех необходимых служб). Обычно достаточно поставить здесь 1-2 минуты.
Если в вашем PowerShell скрипте используются сетевые инструменты Windows, для некоторых GPO нужно включить политику “Specify startup policy processing wait time” в разделе Computer Configuration -> Policies -> Administrative Templates -> System -> Group Policy. Попробуйте начать со значения 60 сек. После включения этой политики компьютер будет ждать 60 секунд прежде, чем начать применять стартап скрипты. Обычно этого достаточно для инициализации сетевой подсистемы Windows.
В Windows Server 2012R2 и Windows 8.1 и выше PowerShell скрипты в GPO запускаются из каталога NetLogon в режиме Bypass. Это означает, что настройки политики запуска сценариев PowerShell игнорируются. Если вы хотите запустить скрипт из другого каталога, или в вашей сети остались клиенты с Windows 7 или Windows Server 2008R2, вам нужно настроить политику выполнения PowerShell скриптов.
По умолчанию в настройках безопасности Windows запрещен запуск PowerShell скриптов. Значение текущей настройки политики запуска сценариев PowerShell можно получить командой Get-ExecutionPolicy. Если политика не настроена, команда вернет Restricted (блокируются любые скрипты). Параметры безопасности запуска PowerShell скриптов можно настроить через политику “Включить выполнение сценариев” / “Turn On Script Execution” (в разделе GPO Computer Configuration -> Administrative Templates -> Windows Components -> Windows PowerShell). Возможные значения политики:
- Allow only signed scripts (AllSigned)– можно запускать только подписанные скрипты PowerShell (“Как подписать скрипт PowerShell?”) –самый лучший сценарий с точки зрения безопасности;
- Allow local scripts and remote signed scripts (RemoteSigned)– можно запускать любые локальные и подписанные удаленные скрипты;
- Allow all scripts (unrestricted) – самый небезопасный вариант, т.к. разрешает запуск любых PowerShell скриптов.
Если вам не подходит не один из предложенных сценариев настройки политики запуска PowerShell скриптов, вы можете запускать PowerShell скрипты в режиме Bypass (скрипты не блокируются, предупреждения не появляются).
Для этого PowerShell скрипт нужно запускать из секции Startup -> Scripts. В этой секции вы можете настроить запуск ps1 сценария с помощью создания обычного Startup скрипта, запускающего исполняемый файл powershell.exe (по аналогии со сценарием, описанным в статье). Укажите:
- Script name:
%windir%System32WindowsPowerShellv1.0powershell.exe
- Script Parameters:
-Noninteractive -ExecutionPolicy Bypass –Noprofile -file %~dp0MyPSScript.ps1
Символы
%~dp0
при запуске на клиенте автоматически преобразуются в UNC путь до каталога со скриптом на SYSVOL.
В данном случае вы принудительно разрешили запуск любого (даже ненадежного) скрипта PowerShell с помощью параметра Bypass.
Перезагрузите компьютер, чтобы обновить настройки GPO и проверьте, что ваш PowerShell скрипт запустился после загрузки.
Выполнить PowerShell скрипт при входе пользователя в Windows
Рассмотрим сценарий автоматического запуска PowerShell скрипта при входе пользователя в Windows (или при выходе).
Если вам нужно запустить скрипт не при загрузке компьютера, а после входа пользователя в Windows (для каждого пользователя компьютера), вам нужно привязать GPO к OU Active Directory с пользователями. В этом случае PowerShell нужно настроить в следующем разделе User Configuration вашей GPO
Если вы хотите, чтобы политика выполнялась для всех пользователей определенного компьютера, нужно привязать политику к OU с компьютерами и включить режим замыкания групповой политики (параметр Configure User Group Policy Loopback Processing mode в разделе Computer Configuration -> Administrative Templates -> System -> Group Policy). Если не включать режим замыкания, то параметры из раздела User Configuration не будут применены к пользователю. Подробнее об этом в статье Почему GPO не применяется к пользователю или компьютеру?
В этом примере для теста я буду использовать простой PowerShell скрипт, который пишет в текстовый лог файл время входа пользователя.
- Скопируйте файл скрипта PowerShell в каталог
\winitpro.ruNETLOGON
на контроллере домена AD - Перейдите в раздел User Configuration -> Policies -> Windows Settings -> Scripts -> Logon;
- Перейдите на вкладку PowerShell Scripts и добавьте ваш PS1 файл скрипта (используйте UNC путь, например
\winitpro.ruNETLOGONUserLog.ps1
); - Выполните логофф пользователя на целевом компьютере и выполните вход;
- Ваш PowerShell скрипт будет запущен автоматически через GPO при входе пользователя;
- Вы можете убедится, что логон скрипт выполнен успешно под пользователем по событию с Event ID 5018 в журнале Microsoft-Windows-GroupPolicy/Operational Event Viewer:
Completed Logon script for winitprokbuldogov in 11 seconds.
Если вы хотите, чтобы пользователь не мог получить доступ к своему рабочему столу до окончания работы скрипта, нужно включить параметр Run logon scripts synchronously = Enable (Computer ConfigurationAdministrative TemplatesSystemLogon). В этом случае explorer не закончится, пока не отработают все политики и логон скрипты (это увеличивает время входа!).
Обратите внимание, что скрипт выполняется с правами текущего пользователя. Если у пользователя есть права администратора на компьютере и на него действуют политики User Account Control (UAC), PowerShell скрипт не сможет внести изменения, требующие повышенных привилегий.
Для запуска PowerShell скриптов с привилегированными правами при входе простых пользователей, можно использовать назначенные задания планировщика. Для этого нужно:
- Создать задание Task Scheduler в разделе User Configuration -> Preferences -> Control Panel Settings -> Scheduled Task;
- На вкладке General указать что задание запускается от имени пользователя
%LogonDomain%%LogonUser
и включите опцию
Run with highest privileges
; - На вкладке Trigger укажите, что задание должно запускаться At log on;
- И на вкладке Actions укажите путь к вашему PowerShell скрипту:
Action: Start a program
Program/Script:
C:WINDOWSsystem32WindowsPowerShellv1.0powershell.exe
Add Arguments (optional):
-ExecutionPolicy Bypass -command "& \winitpro.ruNetlogonyourscript.ps1"
Такой PowerShell скрипт будет запускаться с правами администратора (если пользователь добавлен в группу локальных администраторов Windows).
Некоторые скрипты нужно запускать для каждого пользователя только один раз при первом входе на компьютер (инициализация рабочего окружения, копирование папок или конфигурационных файлов, создание ярлыков и т.д.). В одной из статей мы рассматривали cпособ запуска логон скрипт через GPO только один раз.
Содержание
- Запуск PowerShell скриптов с помощью GPO
- Запуск PowerShell скрипта при загрузке компьютера с помощью групповой политики
- Как запустить скрипт logon один раз, когда новый пользователь входит в Windows Server 2003
- Сводка
- Настройте скрипт для запуска один раз, когда новый пользователь впишется в
- Запуск скрипта при входе в систему windows
- Постановка задачи
- Методы запуска скрипта PowerShell через GPO
- Запуск PowerShell скрипта в автозагрузке сервера
- Запуск PowerShell скрипта для пользователя
- Выполнение сценариев PowerShell по расписанию
- Настройка запуска скрипта Powershell при входе через групповую политику (GPO)
- 1. Разрешаем запуск скриптов.
- 2. Настраиваем время задержки для выполнения скриптов.
- 3. Настраиваем автозапуск скрипта при входе.
- Автоматически запускать скрипт при входе в Windows
Запуск PowerShell скриптов с помощью GPO
В современных операционных системах (Windows 10 / Windows Server 2016) вы можете настраивать запуск логон/логоф скриптов на PowerShell напрямую из редактора GPO.
Запустите консоль управления доменными политиками — GPMC.msc (Group Policy Management сonsole), создайте новую политику и назначьте ее на нужный контейнер с пользователями или компьютерами (можно использовать WMI фильтры GPO для более тонкого нацеливания политики). Перейдите в режим редактирования политики.
Вы должны выбрать раздел GPO для запуска PowerShell скрипта в зависимости от того, когда вы хотите выполнить ваш скрипт.
Запуск PowerShell скрипта при загрузке компьютера с помощью групповой политики
Допустим, нам нужно запускать PowerShell скрипт при загрузке Windows. Для этого нужно выбрать Startup и в открывшемся окне перейди на вкладку PowerShell Scripts.
Теперь нужно скопировать файл с вашим PowerShell скриптом на контроллер домена. Нажмите на кнопку Show Files и перетяните файл с PowerShell скриптом (расширение ps1) в открывшееся окно проводника (консоль автоматически откроет каталог \yourdomainSysVolyourdomainPolicies<Здесь_GUID_вашей_GPO>MachineScriptsStartup вашей политики в каталоге SysVol на ближайшем контроллере домена).
Теперь нужно нажать кнопку Add и добавить скопированный файл скрипта ps1 в список запускаемых политикой PowerShell скриптов.
Если вы запускаете несколько PowerShell скриптов через GPO, вы можете управлять порядком из запуска с помощью кнопок Up/Down.
Если вам не подходит не один из предложенных сценариев настройки политики запуска PowerShell скриптов, вы можете запускать PowerShell скрипты в режиме Bypass (скрипты не блокируются, предупреждения не появляются).
dp0 при запуске на клиенте автоматически преобразуются в UNC путь до каталога со скриптом на SYSVOL.
В данном случае вы принудительно разрешили запуск любого (даже ненадежного) скрипта PowerShell с помощью параметра Bypass.
Источник
Как запустить скрипт logon один раз, когда новый пользователь входит в Windows Server 2003
В этой статье описывается настройка скрипта или программы для запуска одного времени, когда пользователь впервые войт на компьютер.
Применяется к: Windows Server 2003
Исходный номер КБ: 325347
Сводка
В этой статье содержатся сведения об изменении реестра. Перед изменением реестра убедитесь, что его необходимо создать и убедиться, что вы понимаете, как восстановить реестр в случае возникновения проблемы. Сведения о том, как восстановить, восстановить и изменить реестр, см. в Windows реестра для продвинутых пользователей.
Эти действия применяются только к новым пользователям, которые никогда не вошел на компьютер. Если у пользователя уже есть локальный профиль пользователя или профиль роуминга, сценарий или программа не запускаются.
Настройте скрипт для запуска один раз, когда новый пользователь впишется в
Неправильное использование редактора реестра может привести к серьезным проблемам, которые могут потребовать переустановки операционной системы. Корпорация Майкрософт не может гарантировать, что вы можете решить проблемы, связанные с неправильным использованием редактора реестра. Используйте редактор реестра на свой собственный риск.
При установке Windows server 2003 создается профиль пользователя по умолчанию. При первом входе пользователя профиль пользователя по умолчанию копируется в профиль пользователя.
Чтобы настроить сценарий или программу для запуска при входе нового пользователя, выполните следующие действия:
Нажмите кнопку Пуск и выберите пункт Выполнить.
В поле Open введите regedit.exe, а затем выберите ОК.
Найдите в реестре следующие подкайки:
HKEY_USERS
В меню File выберите Load Hive.
В диалоговом окне Load Hive найдите файл Profilepath Default UserNtuser.dat, где Profilepath — это расположение файловой системы профиля пользователя по умолчанию. Выберите Открыть.
В диалоговом окне Load Hive введите имя для улья, а затем выберите ОК.
Файл Ntuser.dat скрыт. Если вы не можете найти или загрузить файл Ntuser.dat, необходимо изменить параметры представления в Windows Explorer. Для этого выполните следующие действия:
Найдите в реестре следующие подкайки: HKEY_USERSTestSoftwareMicrosoftWindowsCurrentVersionRunonce
Где тест — это имя, которое вы дали улью Ntuser.dat в шаге 6.
В меню Редактирование указать на Новое, а затем выберите строковое значение.
В правой области дважды щелкните новое значение.
В диалоговом окне Изменить строку введите полный путь и имя файла для сценария программы или логотипа, а затем выберите ОК.
В левой области выберите тестовый улей.
В меню File выберите разгрузку Hive.
Выберите Да, если вам будет предложено подтвердить, что необходимо разгрузить улей.
Закройте редактор реестра. Этот сценарий программы или логотипа выполняется для пользователя, у которого нет профиля пользователя. Чтобы просмотреть профили пользователей на локальном компьютере, выполните следующие действия:
Источник
Запуск скрипта при входе в систему windows
Добрый день! Уважаемые читатели и гости одного из крупнейших IT порталов в России Pyatilistnik.org. В прошлый раз вы меня просили рассказать вам, о рабочих методах исправления черного экрана Windows 10 и я с вами ими поделился. Так как направленность моего ресурса больше рассчитана на системных администраторов и продвинутых пользователей, то я сегодня хочу вновь поговорить про групповые политики и автоматизацию получаемую благодаря им. В данной публикации речь пойдет, о запуске скрипта PowerShell средствами GPO (Групповой политики), мы рассмотрим все варианты доступные администраторам.
Постановка задачи
Когда начинающий системный администратор превращается в матерого админа, он хочет везде все автоматизировать и везде экономить свое время, и это логично люди существа любящие комфорт и лень. Рабочая среда Active Directory позволяет, как все знаете через групповые политики настройку почти всех компонентов в системе, а что не может замещается средствами PowerShell, вот такой симбиоз. В нашу задачу входит научиться запускать при загрузке компьютера или при входе пользователя на компьютер или сервер, наш скрипт PowerShell, который реализует ту или иную задачу, это не важно, пусть например монтирует базы 1С.
Методы запуска скрипта PowerShell через GPO
Существует несколько сценариев позволяющих вам применять к вашим объектам нужные скрипты:
Запуск PowerShell скрипта в автозагрузке сервера
Открываем оснастку «Управление групповой политикой» и создаем на нужном уровне вашей иерархии организационных подразделений, новую политику, в моем примере, это будет «Добавление баз 1С». Переходим к ее редактированию.
Для того, чтобы при загрузке вашего сервера или компьютера, к нему применялся нужный вам сценарий PowerShell вам необходимо перейти в раздел:
Тут вы увидите два возможных варианта «Автозагрузка» и «Завершение работы»
Далее вы открываете пункт «Автозагрузка», переходите на вкладку «Сценарий PowerShell» и нажимаете кнопку «Добавить«. Через окно «добавление сценария» откройте папку «Startup» и скопируйте туда ваш скрипт. Теперь данный файл будет частью папки Sysvol и располагаться в конкретном GPO объекте.
Так же хочу отметить, что вы можете задать порядок выполнения PowerShell сценария в соответствующей области, выбрав будет ли он выполнятся после других сценариев или перед.
Еще есть ряд нюансов при использовании выполнения скриптов PowerShell средствами групповой политики:
Хочу отметить, что начиная с Windows Server 2012 R2, Windows 8.1 и выше, все запускаемые сценарии PowerShell через GPO работают в режиме Bypass, что подразумевает игнорирование политики Set-ExecutionPolicy. Но если у вас есть более старые клиенты, то вы можете пойти вот таким путем:
Вы можете явно указать исполняемый файл PowerShell, для этого в политике откройте вкладку «Сценарии», нажмите добавить. В имя сценария введите путь до файла powerShell, это:
В параметрах сценария введите вот такие ключи и сетевой путь до скрипта PowerShell.
Еще для подстраховки вы можете включить параметр GPO
Активируем настройку «Включить выполнение сценариев (Turn On Script Execution)», выставим значение «Разрешать все сценарии«.
Проверяем применение вашей GPO, если все настроили правильно она отработает если нет, то начинается траблшутинг, проверяете фильтры GPO и общий алгоритм поиска проблем.
Запуск PowerShell скрипта для пользователя
Чтобы применить к пользователю ваш скрипт, вам необходимо в объекте групповой политики открыть вот такую ветку:
Тут будет два варианта «Вход в систему» и «Выход из системы».
Настраиваем аналогично, как я показывал выше для компьютера, все одинаково.
Выполнение сценариев PowerShell по расписанию
Тут все просто, если вы хотите средствами групповой политики запускать скрипты PowerShell по расписанию, то вам нужно создать задание в шедуллере. Для этого есть ветки GPO:
Указываем в задании нужное время, имя и сетевой путь до скрипта.
Источник
Настройка запуска скрипта Powershell при входе через групповую политику (GPO)
Инструкция представляет шпаргалку по настройке автозапуска сценария при выполнении входа в систему Windows (login).
Настройка имеет некоторые нюансы, из-за которых, даже опытные системные администраторы не сразу могут понять причину неработоспособности сценария.
И так, запускаем консоль управления групповыми политиками и создаем новый объект GPO.
1. Разрешаем запуск скриптов.
Конфигурация компьютера Административные шаблоны Компоненты Windows Windows Powershell
(Computer Configuration Administrative Templates Windows Components Windows PowerShell)
Находим параметр Включить выполнение сценариев (Turn On Script Execution) и выставляем значение Включить и в выпадающем списке Разрешить все сценарии.
2. Настраиваем время задержки для выполнения скриптов.
Конфигурация компьютера Административные шаблоны Система Групповая политика
(Computer Configuration Administrative Templates System Group Policy)
Находим параметр Настроить задержку сценария входа в систему (Configure Logon Script Delay) и выставляем значение Включить и время задержки в минутах, например 1.
* как показала практика, лучше ставить хоть какую-то задержку.
3. Настраиваем автозапуск скрипта при входе.
Конфигурация компьютера (или Конфигурация пользователя) Политики Конфигурация Windows Сценарии
(Computer Configuration или User Configuration Policies Windows Settings Scripts)
В данной ветке мы увидим параметры для настройки сценария при входе или выходе из системы (включении или выключении компьютера). Дважды кликаем по нужному параметру и переходим на вкладку Сценарии Powershell (Powershell Scripts).
Нажимаем по Добавить и выбираем заранее написанный скрипт.
Если необходимо задать приоритет сценариям перед обычными сценариями, в выпадающем списке «Для этого объекта групповой политики выполните сценарии в следующем порядке» выбираем нужный пункт.
Источник
Автоматически запускать скрипт при входе в Windows
Как я могу автоматически запустить скрипт при входе в Windows?
Я хотел бы запускать что-то вроде этого всякий раз, когда я захожу в свой компьютер:
Бонусом будет возможность запускать один и тот же скрипт всякий раз, когда я разблокирую экранную заставку.
Вы можете создать запланированное задание, которое будет запускаться, когда ваш компьютер разблокирован:
Также я подправил путь в скрипте для чтения
Если у вас уже есть скрипт:
Чтобы назначить сценарий входа пользователю или группе
Где? Системные инструменты / Локальные пользователи и группы / Пользователи
Создание сценариев входа
Вы можете использовать сценарии входа в систему, чтобы назначать задачи, которые будут выполняться, когда пользователь входит в систему на определенном компьютере. Сценарии могут выполнять команды операционной системы, устанавливать системные переменные среды и вызывать другие сценарии или исполняемые программы. Семейство Windows Server 2003 поддерживает две среды сценариев: командный процессор запускает файлы, содержащие команды пакетного языка, а Windows Script Host (WSH) запускает файлы, содержащие команды Microsoft Visual Basic Scripting Edition (VBScript) или Jscript. Вы можете использовать текстовый редактор для создания сценариев входа. Некоторые задачи, обычно выполняемые сценариями входа в систему:
Он сопоставляет диск H: с домашним каталогом пользователя, вызывая метод MapNetworkDrive объекта сети WSH в сочетании со свойством UserName объекта сети WSH. Он использует объект ADSI IADsADSystemInfo для получения отличительного имени текущего пользователя, которое, в свою очередь, используется для подключения к соответствующему объекту пользователя в Active Directory. Как только соединение установлено, список групп, членом которых является пользователь, извлекается с использованием атрибута memberOf пользователя. Многозначный список имен групп объединяется в одну строку с помощью функции Join VBScript, чтобы упростить поиск имен целевых групп.
Если текущий пользователь является членом одной из трех групп, определенных в верхней части сценария, сценарий сопоставляет диск G: пользователя с общим диском группы и устанавливает принтер по умолчанию для пользователя в качестве принтера группы. Чтобы создать пример сценария входа
Скопируйте и вставьте или введите следующее:
В меню Файл выберите Сохранить как.
Источник
Содержание
- Способ 1: Папка автозапуска
- Способ 2: «Редактор реестра»
- Способ 3: Планировщик заданий
- Способ 4: Локальные групповые политики
- Вопросы и ответы
Способ 1: Папка автозапуска
Методы добавления в автозагрузку скрипта BAT ничем не отличаются от методов добавления в автозагрузку ярлыков и других файлов. Самым простым и очевидным является копирование файла батника в папку автозапуска.
- Откройте папку автозапуска, для чего выполните в вызванном клавишами Win + R окошке команду
shell:Startup
. - Скопируйте в открывшийся каталог файл BAT.
Это добавит командный файл в автозагрузку текущего пользователя. Если необходимо, чтобы скрипт выполнялся при входе в систему всех пользователей, скопируйте его в системную папку C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup
.
Способ 2: «Редактор реестра»
Добавить батник в автозагрузку можно также путем применения несложного твика реестра, прописав во встроенном «Редакторе реестра» путь к командному файлу.
- Запустите «Редактор реестра» командой
regedit
, выполненной в диалоговом окошке Win + R. - Разверните ветку
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun
илиHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun
, если хотите, чтобы добавленный в автозапуск батник запускался для всех пользователей. - Создайте в правой колонке новый строковый параметр с именем файла BAT или произвольным названием.
- Откройте двойным кликом по созданному параметру окошко редактирования его значения и вставьте в поле «Значение» полный путь к BAT-файлу. Если в пути присутствуют пробелы, заключите путь в двойные прямые кавычки.
Скопировать полный путь к файлу можно в его «Свойствах» либо из его контекстного меню, вызванного с зажатой клавишей Shift.
Способ 3: Планировщик заданий
Следующий метод добавления командного файла в автозагрузку Windows 10 заключается в создании задачи в системном «Планировщике заданий».
- Запустите «Планировщик заданий» командой
taskschd.msc
, выполненной в диалоговом окошке Win + R. - Нажмите в правой колонке по «Создать задачу».
- В окне мастера создания задачи дайте новому заданию произвольное имя, активируйте, если нужно, запуск скрипта с наивысшими правами.
- Перейдите на вкладку «Триггеры» и нажмите кнопку «Создать».
- В выпадающем списке «Начать задачу» выберите «При запуске» или «При входе в систему». Нажмите «OK».
- Перейдите на вкладку «Действия» и нажмите «Создать».
- Нажав кнопку «Обзор», выберите добавляемый в автозапуск файл BAT. Остальные настройки можно не менять, убедитесь только, что в качестве действия выбран «Запуск программы» и последовательно сохраните настройки.
Созданная задача появится в разделе «Библиотека планировщика заданий». При желании ее можно будет испытать, выделив мышкой и нажав ссылку «Выполнить» в правой колонке «Планировщика заданий».
Способ 4: Локальные групповые политики
Этот способ добавления батника в автозагрузку подходит только для Windows 10 редакции Pro и выше.
- Запустите «Редактор локальных групповых политик» командой
gpedit.msc
через диалоговое окошко «Выполнить» (Win + R). - Разверните ветку «Конфигурация пользователя» → «Административные шаблоны» → «Система» → «Вход в систему» и откройте двойным кликом настройки политики «Выполнять эти программы при входе в систему».
- Активируйте радиокнопку «Включено» и нажмите кнопку «Показать».
- В поле «Значение» открывшегося диалогового окошка вставьте полный путь к файлу-батнику, нажмите «OK» и сохраните настройки.
Если необходимо, чтобы батник запускался при входе в систему всех пользователей, нужно изменить одноименную политику в разделе «Конфигурация компьютера», а не «Конфигурация пользователя».
Еще статьи по данной теме:
Помогла ли Вам статья?
If you already have a script:
To assign a logon script to a user or group
- Open Computer Management.
- In the console tree, click Users.
Where? System Tools/Local Users and Groups/Users
- Double-click the user to which you want to assign a logon script.
- Click the Profile tab.
- In the Logon script field, enter the path and name of the logon script you want to assign to that user, and then click OK.
Else here’s a handy «HowTo» from Microsoft
Creating logon scripts
You can use logon scripts to assign tasks that will be performed when a user logs on to a particular computer. The scripts can carry out operating system commands, set system environment variables, and call other scripts or executable programs. The Windows Server 2003 family supports two scripting environments: the command processor runs files containing batch language commands, and Windows Script Host (WSH) runs files containing Microsoft Visual Basic Scripting Edition (VBScript) or Jscript commands. You can use a text editor to create logon scripts. Some tasks commonly performed by logon scripts include:
- Mapping network drives.
- Installing and setting a user’s default printer.
- Collecting computer system information.
- Updating virus signatures.
- Updating software.
- The following example logon script contains VBScript commands that use Active Directory
- Service Interfaces (ADSI) to perform three common tasks based on a user’s group membership:
It maps the H: drive to the home directory of the user by calling the WSH Network object’s MapNetworkDrive method in combination with the WSH Network object’s UserName property.
It uses the ADSI IADsADSystemInfo object to obtain the current user’s distinguished name, which in turn is used to connect to the corresponding user object in Active Directory. Once the connection is established, the list of groups the user is a member of is retrieved by using the user’s memberOf attribute. The multivalued list of group names is joined into a single string by using VBScript’s Join function to make it easier to search for target group names.
If the current user is a member of one of the three groups defined at the top of the script, then the script maps the user’s G: drive to the group shared drive, and sets the user’s default printer to be the group printer.
To create an example logon script
- Open Notepad.
-
Copy and paste, or type, the following:
Const ENGINEERING_GROUP = "cn=engineering" Const FINANCE_GROUP = "cn=finance" Const HUMAN_RESOURCES_GROUP = "cn=human resources" Set wshNetwork = CreateObject("WScript.Network") wshNetwork.MapNetworkDrive "h:", "\FileServerUsers" & wshNetwork.UserName Set ADSysInfo = CreateObject("ADSystemInfo") Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) strGroups = LCase(Join(CurrentUser.MemberOf)) If InStr(strGroups, ENGINEERING_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\FileServerEngineering" wshNetwork.AddWindowsPrinterConnection "\PrintServerEngLaser" wshNetwork.AddWindowsPrinterConnection "\PrintServerPlotter" wshNetWork.SetDefaultPrinter "\PrintServerEngLaser" ElseIf InStr(strGroups, FINANCE_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\FileServerFinance" wshNetwork.AddWindowsPrinterConnection "\PrintServerFinLaser" wshNetWork.SetDefaultPrinter "\PrintServerFinLaser" ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\FileServerHuman Resources" wshNetwork.AddWindowsPrinterConnection "\PrintServerHrLaser" wshNetWork.SetDefaultPrinter "\PrintServerHrLaser" End If
-
On the File menu, click Save As.
- In Save in, click the directory that corresponds to the domain controller’s Netlogon shared folder (usually SystemRootSYSVOLSysvolDomainNameScripts where DomainName is the domain’s fully qualified domain name).
- In Save as type, click All Files.
- In File name, type a file name, followed by .vbs, and then click Save. WSH uses the .vbs extension to identify files that contain VBScript commands.
If you already have a script:
To assign a logon script to a user or group
- Open Computer Management.
- In the console tree, click Users.
Where? System Tools/Local Users and Groups/Users
- Double-click the user to which you want to assign a logon script.
- Click the Profile tab.
- In the Logon script field, enter the path and name of the logon script you want to assign to that user, and then click OK.
Else here’s a handy «HowTo» from Microsoft
Creating logon scripts
You can use logon scripts to assign tasks that will be performed when a user logs on to a particular computer. The scripts can carry out operating system commands, set system environment variables, and call other scripts or executable programs. The Windows Server 2003 family supports two scripting environments: the command processor runs files containing batch language commands, and Windows Script Host (WSH) runs files containing Microsoft Visual Basic Scripting Edition (VBScript) or Jscript commands. You can use a text editor to create logon scripts. Some tasks commonly performed by logon scripts include:
- Mapping network drives.
- Installing and setting a user’s default printer.
- Collecting computer system information.
- Updating virus signatures.
- Updating software.
- The following example logon script contains VBScript commands that use Active Directory
- Service Interfaces (ADSI) to perform three common tasks based on a user’s group membership:
It maps the H: drive to the home directory of the user by calling the WSH Network object’s MapNetworkDrive method in combination with the WSH Network object’s UserName property.
It uses the ADSI IADsADSystemInfo object to obtain the current user’s distinguished name, which in turn is used to connect to the corresponding user object in Active Directory. Once the connection is established, the list of groups the user is a member of is retrieved by using the user’s memberOf attribute. The multivalued list of group names is joined into a single string by using VBScript’s Join function to make it easier to search for target group names.
If the current user is a member of one of the three groups defined at the top of the script, then the script maps the user’s G: drive to the group shared drive, and sets the user’s default printer to be the group printer.
To create an example logon script
- Open Notepad.
-
Copy and paste, or type, the following:
Const ENGINEERING_GROUP = "cn=engineering" Const FINANCE_GROUP = "cn=finance" Const HUMAN_RESOURCES_GROUP = "cn=human resources" Set wshNetwork = CreateObject("WScript.Network") wshNetwork.MapNetworkDrive "h:", "\FileServerUsers" & wshNetwork.UserName Set ADSysInfo = CreateObject("ADSystemInfo") Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) strGroups = LCase(Join(CurrentUser.MemberOf)) If InStr(strGroups, ENGINEERING_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\FileServerEngineering" wshNetwork.AddWindowsPrinterConnection "\PrintServerEngLaser" wshNetwork.AddWindowsPrinterConnection "\PrintServerPlotter" wshNetWork.SetDefaultPrinter "\PrintServerEngLaser" ElseIf InStr(strGroups, FINANCE_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\FileServerFinance" wshNetwork.AddWindowsPrinterConnection "\PrintServerFinLaser" wshNetWork.SetDefaultPrinter "\PrintServerFinLaser" ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\FileServerHuman Resources" wshNetwork.AddWindowsPrinterConnection "\PrintServerHrLaser" wshNetWork.SetDefaultPrinter "\PrintServerHrLaser" End If
-
On the File menu, click Save As.
- In Save in, click the directory that corresponds to the domain controller’s Netlogon shared folder (usually SystemRootSYSVOLSysvolDomainNameScripts where DomainName is the domain’s fully qualified domain name).
- In Save as type, click All Files.
- In File name, type a file name, followed by .vbs, and then click Save. WSH uses the .vbs extension to identify files that contain VBScript commands.
Опубликовано: 13.06.2017
Инструкция представляет шпаргалку по настройке автозапуска сценария при выполнении входа в систему Windows (login).
Настройка имеет некоторые нюансы, из-за которых, даже опытные системные администраторы не сразу могут понять причину неработоспособности сценария.
И так, запускаем консоль управления групповыми политиками и создаем новый объект GPO.
1. Разрешаем запуск скриптов.
Конфигурация компьютера Административные шаблоны Компоненты Windows Windows Powershell
(Computer Configuration Administrative Templates Windows Components Windows PowerShell)
Находим параметр Включить выполнение сценариев (Turn On Script Execution) и выставляем значение Включить и в выпадающем списке Разрешить все сценарии.
2. Настраиваем время задержки для выполнения скриптов.
Конфигурация компьютера Административные шаблоны Система Групповая политика
(Computer Configuration Administrative Templates System Group Policy)
Находим параметр Настроить задержку сценария входа в систему (Configure Logon Script Delay) и выставляем значение Включить и время задержки в минутах, например 1.
* как показала практика, лучше ставить хоть какую-то задержку.
3. Настраиваем автозапуск скрипта при входе.
Конфигурация компьютера (или Конфигурация пользователя) Политики Конфигурация Windows Сценарии
(Computer Configuration или User Configuration Policies Windows Settings Scripts)
В данной ветке мы увидим параметры для настройки сценария при входе или выходе из системы (включении или выключении компьютера). Дважды кликаем по нужному параметру и переходим на вкладку Сценарии Powershell (Powershell Scripts).
Нажимаем по Добавить и выбираем заранее написанный скрипт.
Если необходимо задать приоритет сценариям перед обычными сценариями, в выпадающем списке «Для этого объекта групповой политики выполните сценарии в следующем порядке» выбираем нужный пункт.
Была ли полезна вам эта инструкция?
Да Нет
Обновлено 17.07.2019
Добрый день! Уважаемые читатели и гости одного из крупнейших IT порталов в России Pyatilistnik.org. В прошлый раз вы меня просили рассказать вам, о рабочих методах исправления черного экрана Windows 10 и я с вами ими поделился. Так как направленность моего ресурса больше рассчитана на системных администраторов и продвинутых пользователей, то я сегодня хочу вновь поговорить про групповые политики и автоматизацию получаемую благодаря им. В данной публикации речь пойдет, о запуске скрипта PowerShell средствами GPO (Групповой политики), мы рассмотрим все варианты доступные администраторам.
Постановка задачи
Когда начинающий системный администратор превращается в матерого админа, он хочет везде все автоматизировать и везде экономить свое время, и это логично люди существа любящие комфорт и лень. Рабочая среда Active Directory позволяет, как все знаете через групповые политики настройку почти всех компонентов в системе, а что не может замещается средствами PowerShell, вот такой симбиоз. В нашу задачу входит научиться запускать при загрузке компьютера или при входе пользователя на компьютер или сервер, наш скрипт PowerShell, который реализует ту или иную задачу, это не важно, пусть например монтирует базы 1С.
Методы запуска скрипта PowerShell через GPO
Существует несколько сценариев позволяющих вам применять к вашим объектам нужные скрипты:
- Скрипт применяется в автозагрузке системы, в момент загрузки операционной системы
- Скрипт отработает во время входа или выхода пользователя из системы
- Ну и запуск скрипта по расписанию, такое то же имеет место быть
Запуск 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 2012 R2, Windows 8.1 и выше, все запускаемые сценарии PowerShell через GPO работают в режиме Bypass, что подразумевает игнорирование политики Set-ExecutionPolicy. Но если у вас есть более старые клиенты, то вы можете пойти вот таким путем:
Вы можете явно указать исполняемый файл PowerShell, для этого в политике откройте вкладку «Сценарии», нажмите добавить. В имя сценария введите путь до файла powerShell, это:
%windir%System32WindowsPowerShellv1.0powershell.exe
В параметрах сценария введите вот такие ключи и сетевой путь до скрипта PowerShell.
-Noninteractive -ExecutionPolicy Bypass –Noprofile -file \root.pyatilistnik.orgSysVolroot.pyatilistnik.org Policies{2B79FA3E-CB2F-4D15-A446-3DBBF887CD40} MachineScriptsStartupAdd-Base-1C.ps1
Еще для подстраховки вы можете включить параметр GPO
Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Windows Powershell
(Computer Configuration — Administrative Templates — Windows Components — Windows PowerShell)
Активируем настройку «Включить выполнение сценариев (Turn On Script Execution)», выставим значение «Разрешать все сценарии«.
Небольшой совет, я бы вам рекомендовал включать выполнение всех сценариев исключительно для старых ОС, для этого вы можете сделать отдельную политику и применить ее только к старым операционным системам, через WMI фильтр
Проверяем применение вашей GPO, если все настроили правильно она отработает если нет, то начинается траблшутинг, проверяете фильтры GPO и общий алгоритм поиска проблем.
Запуск PowerShell скрипта для пользователя
Чтобы применить к пользователю ваш скрипт, вам необходимо в объекте групповой политики открыть вот такую ветку:
Конфигурация пользователя — Политики — Конфигурация Windows — Сценарии (Вход/Выход из системы) (User Configuration — Policies — Windows Settings — Scripts
Тут будет два варианта «Вход в систему» и «Выход из системы».
Настраиваем аналогично, как я показывал выше для компьютера, все одинаково.
Выполнение сценариев PowerShell по расписанию
Тут все просто, если вы хотите средствами групповой политики запускать скрипты PowerShell по расписанию, то вам нужно создать задание в шедуллере. Для этого есть ветки GPO:
Конфигурация пользователя — Настройки — Параметры панели управления — Назначенные задания
Конфигурация компьютера — Настройки — Параметры панели управления — Назначенные задания
Указываем в задании нужное время, имя и сетевой путь до скрипта.
Как видите все просто. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.