Запускать сценарии оболочки windows powershell перед после

Запуск 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.

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Теперь нужно скопировать файл с вашим PowerShell скриптом на контроллер домена. Нажмите на кнопку Show Files и перетяните файл с PowerShell скриптом (расширение ps1) в открывшееся окно проводника (консоль автоматически откроет каталог \\yourdomain\SysVol\yourdomain\Policies\<Здесь_GUID_вашей_GPO>\Machine\Scripts\Startup вашей политики в каталоге SysVol на ближайшем контроллере домена).

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

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

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Если вы запускаете несколько PowerShell скриптов через GPO, вы можете управлять порядком из запуска с помощью кнопок Up/Down.

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

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

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

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

В данном случае вы принудительно разрешили запуск любого (даже ненадежного) скрипта PowerShell с помощью параметра Bypass.

Источник

Как создать и запустить сценарий PowerShell в Windows 10 – инструкция по шагам

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Windows 10 PowerShell – это средство командной строки, которое позволяет выполнять команды и сценарии для изменения параметров системы и автоматизации задач. Это похоже на командную строку, но PowerShell является более эффективным интерфейсом командной строки (CLI), который предоставляет широкий набор инструментов и обеспечивает большую гибкость и контроль (особенно для сценариев).

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

В этой версии урока по Windows 10 мы проведём вас шаг за шагом, чтобы вы смогли успешно запустить свой первый скрипт в PowerShell.

Создание файла сценария PowerShell

В Windows 10 файлы сценариев PowerShell можно создавать с помощью практически любого текстового редактора или консоли интегрированной среды сценариев (ISE).

Создание скрипта с помощью блокнота

Чтобы создать сценарий PowerShell с помощью блокнота, выполните следующие действия:

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Вышеприведенный скрипт просто выводит на экране фразу «Поздравляем! Ваш первый скрипт успешно выполнен».

Создание сценария с помощью интегрированной среды сценариев

Кроме того, консоль PowerShell ISE можно использовать для кодирования сценариев в Windows 10. Интегрированная cреда сценариев является сложным инструментом, но вы можете начать работу с помощью этих шагов:

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

В PowerShell ISE создайте пустой файл .ps1, в котором можно создать или вставить скрипт. Например:

Write-Host ««Поздравляем! Ваш первый скрипт успешно выполнен»»

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Как только Вы выполнили эти шаги с помощью Блокнота или PowerShell ISE, сценарий готов к запуску, но он не будет выполнен. Это происходит потому, что параметры PowerShell по умолчанию всегда настроены на блокирование выполнения любого сценария.

Запуск файла сценария PowerShell

Чтобы запустить файл сценария в PowerShell, необходимо изменить политику выполнения, выполнив следующие действия:

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Введите следующую команду для запуска скрипта и нажмите клавишу Enter :

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

В приведенной выше команде обязательно измените PATH\to\SCRIPT на расположение вашего скрипта.

После выполнения этих шагов сценарий будет запущен, и если он был создан правильно, вы должны увидеть его вывод без проблем.

PowerShell в Windows 10 включает четыре политики выполнения:

В приведенных выше шагах мы использовали команду, чтобы разрешить запуск локальных скриптов в Windows 10. Однако, если вы не планируете регулярно выполнять скрипты, можно восстановить настройки по умолчанию, используя те же инструкции, но на Шаге 4, обязательно используйте Set-ExecutionPolicy Restricted команду.

Источник

Написание и запуск сценариев в интегрированной среде сценариев Windows PowerShell How to Write and Run Scripts in the Windows PowerShell ISE

В этой статье описано как создавать, редактировать, выполнять и сохранять скрипты в области скриптов. This article describes how to create, edit, run, and save scripts in the Script Pane.

Создание и выполнение сценариев How to create and run scripts

Политика выполнения Windows PowerShell определяет, можно ли выполнять сценарии, загружать профили Windows PowerShell и файлы конфигурации. The Windows PowerShell execution policy determines whether you can run scripts and load Windows PowerShell profiles and configuration files. Политика выполнения по умолчанию, Restricted, запрещает выполнение сценариев и блокирует загрузку профилей. The default execution policy, Restricted, prevents all scripts from running, and prevents loading profiles. Чтобы изменить эту политику выполнения и разрешить загрузку и использование профилей, см. описание Set-ExecutionPolicy и about_Signing. To change the execution policy to allow profiles to load and be used, see Set-ExecutionPolicy and about_Signing.

Создание файла сценария To create a new script file

Открытие существующего сценария To open an existing script

Закрытие вкладки сценария To close a script tab

Если файл был изменен с момента последнего сохранения, будет предложено сохранить или отменить изменения. If the file has been altered since it was last saved, you’re prompted to save or discard it.

Отображение пути к файлу To display the file path

На вкладке файла наведите курсор на его имя. On the file tab, point to the file name. Появится подсказка с полным путем к файлу сценария. The fully qualified path to the script file appears in a tooltip.

Запуск сценария To run a script

Выполнение части сценария To run a portion of a script

Остановка выполняемого сценария To stop a running script

Есть несколько способов остановить выполняемый скрипт. There are several ways to stop a running script.

Нажатие клавиш CTRL + C также сработает, если нет выделенного текста. В противном случае нажатие клавиш CTRL + C приведет к копированию выделенного текста. Pressing CTRL + C also works unless some text is currently selected, in which case CTRL + C maps to the copy function for the selected text.

Написание и редактирование текста в области сценариев How to write and edit text in the Script Pane

В области скриптов текст можно копировать, вырезать, вставлять, искать и заменять. You can copy, cut, paste, find, and replace text in the Script Pane. Также можно отменить и повторить последнее выполненное действие. You can also undo and redo the last action you just performed. Для этого используются те же клавиши, как и во всех других приложениях Windows. The keyboard shortcuts for these actions are the same shortcuts used for all Windows applications.

Ввод текста в области сценариев To enter text in the Script Pane

Поиск текста в области сценариев To find text in the Script Pane

Поиск и замена текста в области сценариев To find and replace text in the Script Pane

Переход к определенной строке текста в области сценариев To go to a particular line of text in the Script Pane

Введите номер строки. Enter a line number.

Копирование текста в области сценариев To copy text in the Script Pane

В области сценариев выделите текст, который требуется скопировать. In the Script Pane, select the text that you want to copy.

Вырезание текста в области сценариев To cut text in the Script Pane

Вставка текста в области сценариев To paste text into the Script Pane

Отмена действия в области сценариев To undo an action in the Script Pane

Повторное выполнение действия в области сценариев To redo an action in the Script Pane

Сохранение сценария How to save a script

Звездочка рядом с именем скрипта обозначает, что файл не был сохранен после изменения. An asterisk appears next to the script name to mark a file that hasn’t been saved since it was changed. После сохранения звездочка исчезает. The asterisk disappears when the file is saved.

Сохранение сценария To save a script

Сохранение сценария с определенным именем To save and name a script

Сохранение сценария в кодировке ASCII To save a script in ASCII encoding

Следующая команда сохраняет новый сценарий в кодировке ASCII и с именем MyScript.ps1: The following command saves a new script as MyScript.ps1 with ASCII encoding.

Следующая команда заменяет текущий файл сценария на файл с таким же именем, но в кодировке ASCII: The following command replaces the current script file with a file with the same name, but with ASCII encoding.

Следующая команда возвращает кодировку текущего файла: The following command gets the encoding of the current file.

Интегрированная среда скриптов Windows PowerShell поддерживает следующие параметры кодировки: ASCII, BigEndianUnicode, Unicode, UTF32, UTF7, UTF8 и Default. Windows PowerShell ISE supports the following encoding options: ASCII, BigEndianUnicode, Unicode, UTF32, UTF7, UTF8, and Default. Значение параметра Default зависит от системы. The value of the Default option varies with the system.

Интегрированная среда скриптов Windows PowerShell не изменяет кодировку файлов скриптов при использовании команд «Сохранить» или «Сохранить как». Windows PowerShell ISE doesn’t change the encoding of script files when you use the Save or Save As commands.

Источник

Настройка политики запуска скриптов (Execution Policy) PowerShell

По-умолчанию настройки Windows запрещают запуск скриптов PowerShell. Это необходимо для предотвращения запуска вредоносного кода на PowerShell. Настройки политик запуска PowerShell скриптов определяются в Execution Policy. В этой статье мы рассмотрим доступные политики запуска PS скриптов, как изменить Execution Policy и настроить политики использования PowerShell скриптов на компьютерах в домене.

Выполнение PowerShell скриптов запрещено для данной системы

При попытке выполнить PowerShell скрипт (файл с расширением PS1) на чистой Windows 10, появляется ошибка:

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Текущее значение политики выполнения скриптов PowerShell на компьютере можно получить командой:

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Доступны следующие значения PowerShell Execution Policy:

Как разрешить запуск скриптов PowerShell с помощью Execution Policy?

Чтобы изменить текущее значение политики запуска PowerShell скриптов, используется командлет Set-ExecutionPolicy.

Например, разрешим запуск локальных скриптов:

Подтвердите изменение политики запуска PS1 скриптов, нажав Y или A.

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Чтобы запрос не появлялся, можно использовать параметр Force.

Set-ExecutionPolicy RemoteSigned –Force

Если вы установили значение политики PowerShell Execution Policy в Unrestricted, то при запуске удаленных скриптов из сетевых каталогов по UNC пути, скачанных из интернета файлов, все равно будет появляться предупреждение:

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Также следует различать различные области действия политик выполнения скриптов PowerShell (scopes):

Область применения политики можно указать с помощью параметр Scope командлета Set-ExecutionPolicy. Например:

Проверим текущие настройки ExecutionPolicy для всех областей:

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Значение политики выполнения, которые вы задаете с помощью командлета Set-ExecutionPolicy для областей CurrentUser и LocalMachine, хранятся в реестре. Например, выполните командлет:

Откройте ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell и проверьте значение REG_SZ параметра ExecutionPolicy. Оно изменилось на Restricted (допустимые значения параметра Restricted, AllSigned, RemoteSigned, Bypass, Unrestricted и Undefined).

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Аналогичные настройки для области CurrentUser находятся в разделе реестра пользователя HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell.

Отметим, что чаще всего в корпоративной среде используется ExecutionPolicy со значением AllSigned на уровне LocalMachine. Это обеспечивает максимальный баланс между безопасностью и удобством. Для личного пользования на компьютере можно использовать RemoteSigned. Ну а Bypass политику лучше использовать только для запуска отдельных задач (например для запуска скриптов через GPO или заданий планировщика).

Настройка PowerShell Execution Policy с помощью групповых политик

Вы можете настроить политику выполнения PowerShel скриптов на серверах или компьютерах домена с помощью групповых политик.

После настройки политики выполнения через GPO вы не сможете изменить настройки политики выполнения скриптов вручную. При попытке изменить настройки Execution Policy на компьютере, на который применяется такая GPO, появится ошибка:

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Способы обхода политики PowerShell Execution

Есть несколько трюков, которые могут помочь вам, когда нужно запустить на компьютере PowerShell скрипт, не изменяя настройки политики выполнения. Например, я хочу запустить простой PS1 скрипт, который поверяет, что запущен с правами администратора.

Можно с помощью Get-Content получить содержимое скрипта и перенаправить его в стандартныq поток ввода консоли PS.

Источник

Запуск PowerShell скриптов по расписанию

В задачи практически любого системного администратора входит написание различных скриптов и их запуск. Запланировать запуск скрипта по расписанию с помощью Task Sheduler — задача несложная, но при использовании PowerShell есть некоторые нюансы, о которых я расскажу в этой статье.

Итак, предположим, у меня есть скрипт start.ps1, который мне необходимо запускать ежедневно в течении 10 дней. Есть два способа решить эту задачу.

Способ 1

Для запуска скрипта воспользуемся оснасткой Task Scheduler, он же планировщик заданий. Найти его можно в разделе Administrative Tools, либо нажав Win+R и введя команду taskschd.msc. Открываем планировщик и в разделе Actions выбираем пункт Create Task.

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

На вкладке General указываем имя и описание задания, а также (по необходимости) пользователя, от имени которого задание будет запускаться. Для того, чтобы задание выполнялось вне зависимости от того, залогинен ли пользователь в системе, выбираем опцию «Run whether user is logged on or not». Если для выполнения задания требуется повышение привилегий, то отмечаем опцию «Run with highest privileges».

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Далее идем на вкладку Triggers и создаем новый триггер, в котором будет храниться расписание запуска нашего задания. В поле Start указываем дату и время запуска, а в поле Expire — дату и время завершения задания. Указываем выполнять задание ежедневно (Daily) и задаем период повтора (Recur every) 1 день.

Примечание. Если вы хотите запускать задание чаще, чем раз в день, то надо выбрать одноразовое выполнение (One time), а в разделе Advanced settings отметить пункт Repeat task every и указать время повторения, минимум 5 минут, максимум 1 час. Если этого недостаточно, то дополнительно в поле Delay task for up to можно указать временную задержку.

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Также в поле аргументы можно указать:

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Заполнив необходимые поля жмем ОК и сохраняем задание. Теперь скрипт будет запускаться по расписанию ежедневно в заданное время в течении 10 дней.

Способ 2

В PowerShell 3.0 появился новый функционал Sheduled Job, дающий возможность создавать запланированные задания прямо из консоли, не пользуясь оснасткой планировщика. Воспользуемся им для планового запуска нашего скрипта.

Сначала создаем расписание запуска (ежедневно в полпятого вечера, в течении 10 дней):

Затем сохраняем в переменной учетные данные:

$cred = Get-Credential contoso\administrator

В качестве опции указываем запуск задания с повышенными привилегиями:

И регистрируем задание с именем Start:

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Чтобы убедится в том, что задание создано, можно открыть планировщик и найти наше задание в разделе Microsoft\Windows\PowerShell\SheduledJobs.

Запускать сценарии оболочки windows powershell перед после. Смотреть фото Запускать сценарии оболочки windows powershell перед после. Смотреть картинку Запускать сценарии оболочки windows powershell перед после. Картинка про Запускать сценарии оболочки windows powershell перед после. Фото Запускать сценарии оболочки windows powershell перед после

Примечание. Для каждого запланированного задания PowerShell в директории %systemdrive%\Users\%username%\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs создается одноименная папка. В этой папке находится само задание в XML-файле и папка Output, в которой, в подпапках по времени выполнения, хранится история выполнения задания — результат выполнения (файлs Result.xml) и статус задания (Status.xml). Эти файлы могут пригодиться для отладки и диагностики в том случае, если задание не отрабатывает должным образом.

Execution Policy

• Restricted — блокируется выполнение любых скриптов. Значение по умолчанию;
• AllSigned — разрешено выполнение скриптов, имеющих цифровую подпись;
• RemoteSigned — скрипты, подготовленные на локальном компьютере, можно запускать без ограничений, скрипты, загруженные из Интернета — только при наличии цифровой подписи;
• Unrestricted — разрешено выполнение любых скриптов. При запуске неподписанного скрипта, который был загружен из Интернета, программа может потребовать подтверждение;
• Bypass — ничего не блокируется, никакие предупреждения и запросы не появляются.

Примечание. Если указанная в команде политика выполнения противоречит групповой политике, то параметр запишется в реестр, но действовать не будет.

Источник

Добавить комментарий

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