Скрипт выполнить: 404 Не найдено

Содержание

Запуск скрипта PowerShell

PowerShell — это новая командная оболочка для Windows, которая по задумкам Microsoft должна вытеснить и заменить cmd. По-умолчанию, эта оболочка уже идет в составе Windows 7 и выше. Если у вас более старая операционная система или вы просто хотите скачать более свежую версию PowerShell, сделать это можно здесь: https://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx

Как запустить скрипт PowerShell?

Есть несколько различных способов запуска скрипта, ниже приведены основные:

  1. Запустить оболочку PowerShell и в ней запустить скрипт (ввести путь до файла и имя файла, например, так: C:\Scripts\test.ps1, или перейти в папку скрипта командой cd C:\Scripts и запустить его командой .\test.ps1)Оболочку можно найти и запустить множеством способов. Один из способов — через меню «Пуск». Для Windows 7 — нужно зайти во «Все программы» — «Стандартные» — «Windows PowerShell» и запустить оболочку «Windows PowerShell». Для Windows 10 — нужно найти группу на букву «W» и в ней вы найдете «Windows PowerShell».
  2. Запустить «Интегрированную среду сценариев Windows PowerShell ISE» — это программа — среда разработки, позволяющая редактировать и отлаживать скрипты PowerShell, которая так же есть по-умолчанию вместе с самим PowerShell. Запустив ее, нужно просто нажать кнопку «Открыть» или зайти в меню Файл — Открыть и выбрать нужный скрипт, затем нажать F5 или кнопку «Выполнить скрипт».Найти Windows PowerShell ISE можно там же, где и оболочку PowerShell — в меню «Пуск».
  3. Запустить стандартную коммандную строку и в ней написать:
    powershell -file <имя_скрипта> (пример: powershell -file myscript.ps1)

Если вы раньше не запускали скрипты PowerShell, то скорее всего, вы получите сообщение: Не удается загрузить файл <имя_скрипта>, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений. Связано это с тем, что из соображений безопасности и недопущения случайного выполнения вредоносного кода, все скрипты должны быть подписаны цифровой подписью.

Как разрешить выполнение неподписанного скрипта PowerShell?

1. В оболочке PowerShell, перед тем как запускать скрипт, выполнить команду, разрешающую выполнение неподписанных скриптов для текущего сеанса оболочки:

Set-ExecutionPolicy RemoteSigned -Scope Process

2. При запуске из стандартной коммандной строки использовать параметр -executionpolicy, т.е. запускать скрипт так:

powershell -executionpolicy RemoteSigned -file <имя_скрипта>

Оба способа устанавливают политику только для текущего сеанса, при этом, политика безопасности выполнения скриптов PowerShell, прописанная в реестре, не будет изменена и останется прежней. Если вы хотите поменять политику безопасности выполнения скриптов «на постоянно», то используйте такой способ:

3. Разрешить запуск навсегда: запустить оболочку PowerShell от имени «Администратора», затем выполните команду:

Set-ExecutionPolicy RemoteSigned

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

Примечание: Если скрипт был загружен из интернета, то чтобы избежать запроса на подтверждение запуска, нужно вместо RemoteSigned использовать Bypass — полное отключение любых запросов и предупреждений.

Как запустить скрипт PowerShell в фоновом режиме?

Для этого достаточно использовать параметр запуска -WindowStyle, который может принимать значения: Normal, Minimized, Maximized и Hidden. Таким образом, чтобы запустить неподписанный скрипт в фоновом режиме, нужно выполнить команду:

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file <имя_скрипта>

Так же можно еще при желании добавить -NonInteractive, чтобы скрипт не задавал никаких вопросов. Таким образом, скрипт выполнится незаметно для пользователя. Будmте внимательны, используя такой способ.

Запуск скрипта PowerShell c параметрами

Собственно запуск нужно делать как если бы вы запускали обычную программу или bat-файл с параметрами. Например, для запуска скрипта с параметрами из командной, можно написать такую команду:

powershell -executionpolicy RemoteSigned -file <имя_скрипта> param1 param2 «еще один текстовый параметр»

В самом скрипте вы можете получить эти параметры так:


param ($var1, $var2, $var3)
echo $var1, $var2, $var3

В интегрированной среде PowerShell ISE запустить скрипт с параметрами можно аналогично, используя область команд.

Как запустить скрипт PowerShell с помощью ярлыка?

Осуществить такую задачу можно двумя способами:

  1. Создать bat/cmd файл, в котором прописать команду для запуска скрипта (с параметрами вы ознакомились выше)
  2. Создать ярлык на PowerShell, который можно найти в папке c:\Windows\System32\WindowsPowerShell\v<версия>\ и в свойствах ярлыка в поле «Объект» дописать необходимые параметры.

Таким образом, например, чтобы запустить скрипт powershell при входе пользователя, можно просто создать ярлык, как описано во 2-м пункте и поместить его в автозагрузку. Так же, создание ярлыка одним из способов выше позволит легко запустить скрипт от имени администратора или от имени любого другого пользователя как обычную программу.

Скриптовый язык PowerShell — довольно мощный инструмент для решения различных задач, но его можно использовать не только для хороших вещей, но и во вред, поэтому, пользуйтесь им с умом 😉

 

Написание и запуск сценариев в интегрированной среде сценариев Windows PowerShell — PowerShell

  • Статья
  • Чтение занимает 4 мин
Были ли сведения на этой странице полезными?

Оцените свои впечатления

Да Нет

Хотите оставить дополнительный отзыв?

Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку «Отправить», вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.

Отправить

В этой статье

В этой статье описано как создавать, редактировать, выполнять и сохранять скрипты в области скриптов.

Создание и выполнение сценариев

В области скриптов можно открывать и редактировать файлы Windows PowerShell. Сейчас нас интересуют следующие типы файлов Windows PowerShell: файлы скриптов (.ps1), файлы данных скриптов (.psd1) и файлы модулей скриптов (.psm1). Эти типы файлов имеют цветовую подсветку синтаксиса в редакторе области сценариев. Другие стандартные файлы, которые можно открыть в области сценариев, — это файлы конфигурации (. ps1xml), XML-файлы и текстовые файлы.

Примечание

Политика выполнения Windows PowerShell определяет, можно ли выполнять сценарии, загружать профили Windows PowerShell и файлы конфигурации. Политика выполнения по умолчанию, Restricted, запрещает выполнение сценариев и блокирует загрузку профилей. Чтобы изменить эту политику выполнения и разрешить загрузку и использование профилей, см. описание Set-ExecutionPolicy и about_Signing.

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

Нажмите кнопку Создать на панели инструментов или откройте меню Файл и выберите Создать. Созданный файл появится на вкладке «Новый файл» под текущей вкладкой PowerShell. Помните, что вкладки PowerShell отображаются, только если их несколько. По умолчанию создается файл сценария (

.ps1), но его можно сохранить с новым именем и расширением. На одной вкладке PowerShell может быть создано несколько файлов сценариев.

Открытие существующего сценария

Нажмите кнопку Открыть. .. на панели инструментов или откройте меню Файл и выберите пункт Открыть. В диалоговом окне Открыть выберите файл, который требуется открыть. Открытый файл появится в новой вкладке.

Закрытие вкладки сценария

На вкладке файла, которую нужно закрыть, щелкните значок закрытия (X) или откройте меню

File (Файл) и выберите Close (Закрыть).

Если файл был изменен с момента последнего сохранения, будет предложено сохранить или отменить изменения.

Отображение пути к файлу

На вкладке файла наведите курсор на его имя. Появится подсказка с полным путем к файлу сценария.

Запуск сценария

Нажмите кнопку Выполнить сценарий на панели инструментов или откройте меню Файл и выберите пункт Выполнить.

Выполнение части сценария

  1. Выберите часть сценария в области сценариев.
  2. Нажмите кнопку Выполнить выделенный фрагмент на панели инструментов или откройте меню Файл и выберите пункт Выполнить выделенный фрагмент.

Остановка выполняемого сценария

Есть несколько способов остановить выполняемый скрипт.

  • На панели инструментов щелкните Остановить операцию.
  • Нажмите CTRL+BREAK.
  • В меню Файл выберите Остановить операцию.

Нажатие клавиш CTRL+C также сработает, если нет выделенного текста. В противном случае нажатие клавиш CTRL+C приведет к копированию выделенного текста.

Написание и редактирование текста в области сценариев

В области скриптов текст можно копировать, вырезать, вставлять, искать и заменять. Также можно отменить и повторить последнее выполненное действие. Для этого используются те же клавиши, как и во всех других приложениях Windows.

Ввод текста в области сценариев

  1. Установите курсор в область сценариев, щелкнув кнопкой мыши любую ее часть или выбрав пункт Перейти в область сценариев в меню Вид.
  2. Создайте сценарий. Цветовая подсветка синтаксиса и заполнение нажатием клавиши TAB обеспечивают более широкие возможности для редактирования в интегрированной среде скриптов Windows PowerShell.
  3. Подробную информацию о заполнении нажатием клавиши TAB, помогающем при вводе кода, см. в статье How to Use Tab Completion in the Script Pane and Console Pane (Использование заполнения нажатием клавиши TAB в областях сценариев и консоли).

Поиск текста в области сценариев

  1. Чтобы найти текст в любой части скрипта, нажмите клавиши CTRL+F или выберите Find in Script (Найти в сценарии) в меню Edit (Правка).
  2. Чтобы найти текст после курсора, нажмите клавишу F3 или выберите Найти следующее в сценарии в меню Правка.
  3. Чтобы найти текст до курсора, нажмите клавиши SHIFT+F3 или выберите Find Previous in Script (Найти предыдущее в сценарии) в меню Edit (Правка).

Поиск и замена текста в области сценариев

Нажмите клавиши CRTL+H или в меню Edit (Правка) выберите Replace in Script (Заменить в сценарии). Введите текст, который нужно найти, и замещающий текст, затем нажмите клавишу ВВОД.

Переход к определенной строке текста в области сценариев

  1. В области сценариев нажмите клавиши CTRL+G или выберите Go to Line (Перейти к строке) в меню Edit (Правка).

  2. Введите номер строки.

Копирование текста в области сценариев

  1. В области сценариев выделите текст, который требуется скопировать.

  2. Нажмите клавиши CTRL+C, щелкните значок Copy (Копировать) на панели инструментов или выберите Copy (Копировать) в меню Edit (Правка).

Вырезание текста в области сценариев

  1. В области сценариев выделите текст, который требуется вырезать.
  2. Нажмите клавиши CTRL+X, щелкните значок Cut (Вырезать) на панели инструментов или выберите Cut (Вырезать) в меню Edit (Правка).

Вставка текста в области сценариев

Нажмите клавиши CTRL+V, щелкните значок Paste (Вставить) на панели инструментов или выберите Paste (Вставить) в меню Edit (Правка).

Отмена действия в области сценариев

Нажмите клавиши CTRL+Z, щелкните значок Undo на панели инструментов или выберите Отменить в меню Правка.

Повторное выполнение действия в области сценариев

Нажмите клавиши CTRL+Y, щелкните значок Повторить на панели инструментов или выберите Повторить в меню Правка.

Сохранение сценария

Звездочка рядом с именем скрипта обозначает, что файл не был сохранен после изменения. После сохранения звездочка исчезает.

Сохранение сценария

Нажмите клавиши CTRL+S, щелкните значок Сохранить на панели инструментов или выберите Сохранить в меню Файл.

Сохранение сценария с определенным именем

  1. В меню Файл выберите пункт Сохранить как. Появится диалоговое окно Сохранить как.
  2. В поле Имя файла введите имя файла.
  3. В поле Тип файла выберите тип файла. Например, в поле Тип сохраняемого файла выберите «Скрипты PowerShell (*.ps1)».
  4. Нажмите Сохранить.

Сохранение сценария в кодировке ASCII

По умолчанию интегрированная среда сценариев Windows PowerShell сохраняет новые файлы сценариев (. ps1), файлы данных сценариев (.psd1) и файлы модулей сценариев (.psm1) в кодировке Юникод (BigEndianUnicode). Чтобы сохранить сценарий в другой кодировке, например ASCII (ANSI), используйте методы Save или SaveAs объекта $psISE.CurrentFile.

Следующая команда сохраняет новый сценарий в кодировке ASCII и с именем MyScript.ps1:

$psISE.CurrentFile.SaveAs("MyScript.ps1", [System.Text.Encoding]::ASCII)

Следующая команда заменяет текущий файл сценария на файл с таким же именем, но в кодировке ASCII:

$psISE.CurrentFile.Save([System.Text.Encoding]::ASCII)

Следующая команда возвращает кодировку текущего файла:

$psISE.CurrentFile.encoding

Интегрированная среда скриптов Windows PowerShell поддерживает следующие параметры кодировки: ASCII, BigEndianUnicode, Unicode, UTF32, UTF7, UTF8 и Default. Значение параметра Default зависит от системы.

Интегрированная среда скриптов Windows PowerShell не изменяет кодировку файлов скриптов при использовании команд «Сохранить» или «Сохранить как».

См. также:

Порядок выполнения скриптов в HTML. Тег script и его атрибуты

С добавлением в JavaScript ES-модулей появилось не менее 24 способов подгрузить скрипты: с атрибутом src и без него; с async или без; defer или нет; type=module и nomodule. Все они немножко отличаются друг от друга.

В этой статье сравним, как встроенные в HTML тэги <script> обрабатываются в зависимости от набора атрибутов.

Картинка вместо тысячи слов

Мы видим, что async используется в legacy-скриптах, когда нужно выполнить их пораньше, а module — наоборот, чтобы задержать выполнение до подходящего момента (модульные скрипты по умолчанию обладают атрибутом defer).

Шпаргалку сохранили, а теперь рассмотрим каждый из вариантов подробней.

Сравнение обычного <script> с async, defer и async defer

Async и defer полностью поддерживаются и, как уже говорилось, интуитивно понятная разница между ними заключается в том, что скрипты с async выполняются сразу. Они не ждут окончания парсинга HTML, полного формирования DOM, а также подгрузки остальных скриптов.

Обычные немодульные <script>

  • Приостанавливают парсинг HTML.
  • Сразу подгружаются, парсятся и выполняются.
  • Гарантируют порядок выполнения относительно других обычных немодульных скриптов.
  • Блокируют событие DOMContentLoaded.
  • Учитывая всё вышесказанное, такие скрипты не подходят для некритичного кода, поскольку замедляют рендеринг и, как следствие, загрузку динамических веб-приложений.

<script defer>

  • Для встроенных (inline) немодульных скриптов defer игнорируется, и код выполняются сразу. Если defer прям сильно нужен, можно воспользоваться обходным путём с участием base64.
  • Для встроенных скриптов с указанием type=”module” defer применяется по умолчанию.
  • Подгружаются без остановки HTML-парсера.
  • Гарантируют порядок выполнения относительно других defer-скриптов (если они внешние — с атрибутом src). Криво работают в IE9.
  • Выполняются после окончания парсинга DOM (но перед срабатыванием DOMContentLoaded).
  • Блокируют событие DOMContentLoaded (только если скрипт не async defer).

<script async>

  • Для встроенных (inline) немодульных скриптов async игнорируется.
  • Для встроенных модульных скриптов async поддерживается.
  • Подгружаются без остановки HTML-парсера.
  • Выполняются без очереди.
  • Не гарантируют порядок выполнения относительно других скриптов с async (также касается модульных скриптов с async).
  • Не ждут окончания парсинга HTML. Могут прервать построение DOM (в частности, когда он достаётся из кэша браузера).
  • Блокируют событие load (но не DOMContentLoad).
  • Не поддерживаются в IE9.

<script async defer>

Воспринимаются как async. В древних брузерных движках, которые не поддерживают async (IE9), работает так же, как defer.

Сравнение type=module, type=text/javascript и nomodule

Скрипты с type=module (также касается type=text/javascript)

  • Предполагают defer (также для встроенных скриптов, в отличие от немодульных скриптов).
  • Исходя из этого, гарантируют порядок выполнения относительно всех модульных скриптов, не использующих async (как встроенных, так и внешних).
  • Выполняются только раз, даже если скрипты с одинаковым src подгружаются несколько раз.
  • Могут использовать import для объявления зависимости с другими модульными скриптами (одна из причин, почему модули предполагают использование defer).
  • Подвергаются проверке CORS (в модулях из разных источников потребуется указать Access-Control-Allow-Origin: [источники]).
  • Не выполняются браузерами, которые не поддерживают модульные скрипты. Однако они всё ещё, по видимому, подгружаются в IE11, Firefox 52 ESR и т.д.

<script nomodule>

Не выполняются браузерами, которые не поддерживают <script type=”module”>. Однако, даже некоторые современные браузеры по ошибке подтягивают их (например Safari 10.3, но существует способ это исправить).

Сравнение встроенных (inline) и внешних скриптов

Встроенные скрипты (без атрибута src)

  • Для немодульных скриптов async и defer игнорируются.
  • Блокируют HTML-парсеры и построение DOM, так как выполняются сразу после загрузки.
  • Встроенные модульные скрипты предполагают defer. Также поддерживают async.
  • Не кэшируются браузерами.

Внешние скрипты

Кэшируются браузерами (при условии подходящих заголовков в ответе от сервера), поэтому могут использоваться в будущем без повторной подгрузки из сети.

Примеры использования скриптов

Перевод статьи «<script> async, defer, async defer, module, nomodule, src, inline — the cheat sheet»

Как запустить скрипт PowerShell в Windows

Обновлено 16.07.2021

Всем привет сегодня хочу рассказать как запустить скрипт PowerShell в Windows. Представьте ситуацию вы написали скрипт который сильно упрощает вам вывод информации по Active Directory, вы открываете оснастку powershell прописываете путь к своему скрипту нажимаете enter и получаете ошибку.

Не удается загрузить файл <путь к вашему файлу>, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений.

Смотрим как ее решить.

Ошибки при запуске скрипта PowerShell

Как запустить скрипт PowerShell в Windows-02

Так же вы можете увидеть ошибку после запуска установленного PowerCLI:

Import-Module : Невозможно загрузить файл C:\Program Files\WindowsPowerShell\Modules\VMware.VimAutomation.Sdk\12.2.0.17
531155\VMware.VimAutomation.Sdk.psm1, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Execution_Policies по адресу https:/go.microsoft.com/fwlink/?LinkID=135170.
строка:1 знак:1
+ Import-Module VMware.PowerCLI
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : Ошибка безопасности: (:) [Import-Module], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand

PowerShell обладает рядом режимов исполнения, которые определяют, какой тип кода разрешается выполнять. Все это управляется ключом реестра, живущим в HKLM. Существует 4 различных режима исполнения:

  • Ограниченный (Restricted): Политика исполнения по умолчанию, не допускает работу скриптов и разрешает работу лишь интерактивных команд.
  • Все подписанные (All Signed): Допускает работу всех скриптов. Правда, все скрипты и файлы конфигурации должны быть подписаны издателем, которому вы доверяете; данный режим подвергает вас риску работы подписанных (но вредоносных) скриптов, после получения подтверждения доверия издателю.
  • Удаленные подписанные (Remote Signed): Локальные скрипты работают без подписи. Все скачанные скрипты должны иметь цифровую подпись.
  • Неограниченный (Unrestricted): Все скрипты и файлы конфигурации, полученные из коммуникационных приложений, вроде Microsoft Outlook, Internet Explorer, Outlook Express и Windows Messenger работают после подтверждения, что вы понимаете, что файл исходит из Интернета; никакие цифровые подписи не требуются; данный режим подвергает вас риску работу неподписанных, вредоносных скриптов.

По умолчанию для PowerShell используется режим «Ограниченный». В этом режиме, PowerShell работает лишь как интерактивная оболочка. Он не допускает работу скриптов, и загружает лишь те файлы конфигурации, которые подписаны издателем, которому вы доверяете.

Разрешить выполнение скриптов powershell

Чтобы запускать созданные собою скрипты, необходимо разрешить выполнение ненадежных скриптов с помощью команды Set-ExecutionPolicy remotesigned и подтверждением (Внимание!!! для выполнения этой команды необходимо запустить PowerShell с правами администратора). После этого можно вновь запустить выполнения скрипта.

Как запустить скрипт PowerShell в Windows-03

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

Как запустить скрипт PowerShell по расписанию

Очень часто на серверах появляется необходимость по запуску скрипта PowerShell по расписанию или по определенному событию, которое появляется в логах Windows, в таких ситуациях нам на помощь приходит планировщик заданий.

Я приведу пример, когда мне нужно было отслеживать события ID 20291 или ID 11707.  И так откройте окно выполнить и введите в нем:

Далее вы щелкаете по библиотеке правым кликом и из контекстного меню выбираете пункт «Создать задачу«.

Задаете имя задания, советую запускать скрипт PowerShell от имени учетной записи «СИСТЕМА (SYSTEM)«, это будет гарантировать, что задание точно отработает.

Поставьте галку «Выполнять с наивысшими правами»

Переходим на вкладку тригеры и создаем новый. В параметрах выберите «При событии«

Далее задаем:

  • Журнал — Приложение
  • Источник — MsiInstaller
  • Код события — 11707

Тут тригер будет срабатывать, когда в логах появится событие 11707.

В действие оставляем «Запуск программы». В программе указываем powershell, а в параметрах задайте путь до самого скрипта, через параметр -File c:\scripts\id11707.ps1.

В итоге у меня вышло вот так.

Как видим, мое задание по запуску скрипта PowerShell успешно создано и отработало в планировщике Windows.

Запуск скрипта PowerShell через исполняемый файл exe

Так же вы можете воспользоваться конвертированием скрипта PowerShell из формата ps1 в exe файл, после чего даже не потребуется менять политику запуска не подписанных скриптов. Так же exe скрипт можете запускать и через планировщик.

На этом у меня все, мы разобрали методы запуска скриптов PowerShell в Windows, с вами был Иван Семин. Материал сайта pyatilistnik.org

Разрешить запуск скриптов PowerShell | internet-lab.ru

По умолчанию запуск скриптов PowerShell может быть запрещён.

Пытаюсь запустить скрипт, получаю ошибку:

Не удается загрузить файл. Файл не имеет цифровой подписи. Невозможно выполнить сценарий в указанной системе.

Посмотрим текущее значение политики выполнения скриптов PowerShell:

Get-ExecutionPolicy

Возможные варианты:

  • Restricted – запрещен запуск скриптов PowerShell, можно выполнять только интерактивные команды.
  • AllSigned – разрешено выполнять только скрипты с цифровой подписью от доверенного издателя.
  • RemoteSigned – можно запускать локальные PowerShell скрипты без ограничения. Можно запускать удаленные PowerShell скрипты с цифровой подписью. Нельзя запускать PS1 файлы, скачанные из Интернета. В свойствах скачанного файла можно «Разблокировать» запуск скрипта.
  • Unrestricted – разрешен запуск любых PowerShell скриптов.
  • Bypass – разрешён запуск любых PowerShell скриптов. Эта политика обычно используется для автоматического запуска PS скриптов без вывода каких-либо уведомлений и не рекомендуется для постоянного использования.
  • Default – сброс настроек выполнения скриптов на стандартные.

У меня установлена политика AllSigned, поэтому неподписанный скрипт не запустился.

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

Set-ExecutionPolicy Bypass

Как видно из скриншота, политика запуска PowerShell скриптов изменилась, но… не изменилась. Такая ошибка появляется, если политики запуска PowerShell скриптов управляются групповыми политиками, например, если компьютер в домене.

В этом случае нам поможет реестр. В разделе

\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell

Установить ExecutionPolicy=Bypass.

Ещё можно запустить скрипт с явно указанной политикой:

powershell.exe -noprofile -executionpolicy bypass -file c:\ps\hello.ps1

Или так:

Get-Content c:\ps\hello.ps1 | PowerShell.exe -noprofile -executionpolicy bypass

Можно установить не только политику запуска PowerShell скриптов, но и зону её действия с помощью параметра Scope.

Get-ExecutionPolicy -List

Например:

Set-ExecutionPolicy -Scope MachinePolicy -ExecutionPolicy Bypass –Force

Возможные варианты:

  • LocalMachine — для всех пользователей данного компьютера. Значение хранится в реестре, в разделе HKEY_LOCAL_MACHINE.
  • CurrentUser — для текущего пользователя. Хранится в разделе реестра HKEY_CURRENT_USER.
  • Process — в текущем сеансе PowerShell. Значение хранится в переменной окружения $PSExecutionPolicyPreference и при закрытии сеанса удаляется.
  • UserPolicy — для всех пользователей данного компьютера. Распространяется с помощью групповых политик. Значение хранится в разделе пользователя, политика применяется при входе пользователя в систему.
  • MachinePolicy — действует на всех пользователей данного компьютера. Распространяется с помощью групповых политик. Значение хранится в разделе компьютера, политика применяется при загрузке системы.

Запуск скрипта в процессе—Справка | ArcGIS for Desktop

Если ваш инструмент-скрипт выполняет сценарий Python, вы должны включить опцию Запустить скрипт Python в процессе (Run Python script in process) для того, чтобы запустить этот скрипт в процессе, как показано ниже. Данная опция применяется только к скриптам Python.

Примечание:

В процессе могут запускаться только либо скрипты, импортирующие ArcPy, как показано ниже, либо создающие объект геообработки с помощью arcgisscripting.create().

Примечание:

Скрипты, использующие dispatch, как показано ниже, не могут запускаться в процессе, даже если включена опция Запустить скрипт Python в процессе (Run Python script in process).

import win32com.client
gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")

Опция Запустить скрипт Python в процессе (Run Python script in process) стала доступна в ArcGIS 9.3. До версии 9.3 скрипты Python запускались вне процесса. Запуск вне процесса требует от ArcGIS запуска еще одного, другого процесса (помните об этом, запуская еще одну программу), что требует времени. При запуске вне процесса возникают также вопросы обмена информацией между этими двумя процессами. Начиная с версии 9.3, Python интегрирован в ArcGIS, и скрипты могут запускаться в процессе, экономя время на запуск и обмен информацией.

Запуск в процессе требует, чтобы все загруженные с Python модули были к этому приспособлены, обладая необходимой логикой. Все стандартные библиотеки Python, такие как os, string и time, имеют необходимую логику. Однако, нестандартные модули, приобретенные у третьих лиц, могут не иметь необходимой логики для запуска в процессе. Если вы испытываете необъяснимые проблемы при работе вашего скрипта, попробуйте отключить опцию «в процессе» и перезапустить ваш скрипт. Если при запуске вне процесса проблема исчезнет, то скорее всего проблема – в одном из импортированных вами модулей. В этом случае оставьте эту опцию выключенной.

Отзыв по этому разделу?

Bash-скрипты: начало / Хабр

Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Сегодня поговорим о bash-скриптах. Это —

сценарии командной строки

, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в

командной строке

Linux.



Сценарии командной строки — это наборы тех же самых команд, которые можно вводить с клавиатуры, собранные в файлы и объединённые некоей общей целью. При этом результаты работы команд могут представлять либо самостоятельную ценность, либо служить входными данными для других команд. Сценарии — это мощный способ автоматизации часто выполняемых действий.

Итак, если говорить о командной строке, она позволяет выполнить несколько команд за один раз, введя их через точку с запятой:

pwd ; whoami

На самом деле, если вы опробовали это в своём терминале, ваш первый bash-скрипт, в котором задействованы две команды, уже написан. Работает он так. Сначала команда

pwd

выводит на экран сведения о текущей рабочей директории, потом команда

whoami

показывает данные о пользователе, под которым вы вошли в систему.

Используя подобный подход, вы можете совмещать сколько угодно команд в одной строке, ограничение — лишь в максимальном количестве аргументов, которое можно передать программе. Определить это ограничение можно с помощью такой команды:

getconf ARG_MAX

Командная строка — отличный инструмент, но команды в неё приходится вводить каждый раз, когда в них возникает необходимость. Что если записать набор команд в файл и просто вызывать этот файл для их выполнения? Собственно говоря, тот файл, о котором мы говорим, и называется сценарием командной строки.

Как устроены bash-скрипты

Создайте пустой файл с использованием команды

touch

. В его первой строке нужно указать, какую именно оболочку мы собираемся использовать. Нас интересует

bash

, поэтому первая строка файла будет такой:

#!/bin/bash

В других строках этого файла символ решётки используется для обозначения комментариев, которые оболочка не обрабатывает. Однако, первая строка — это особый случай, здесь решётка, за которой следует восклицательный знак (эту последовательность называют

шебанг

) и путь к

bash

, указывают системе на то, что сценарий создан именно для

bash

.

Команды оболочки отделяются знаком перевода строки, комментарии выделяют знаком решётки. Вот как это выглядит:

#!/bin/bash
# This is a comment
pwd
whoami

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

Установка разрешений для файла сценария

Сохраните файл, дав ему имя

myscript

, и работа по созданию bash-скрипта почти закончена. Сейчас осталось лишь сделать этот файл исполняемым, иначе, попытавшись его запустить, вы столкнётесь с ошибкой

Permission denied

.


Попытка запуска файла сценария с неправильно настроенными разрешениями

Сделаем файл исполняемым:

chmod +x ./myscript

Теперь попытаемся его выполнить:

./myscript

После настройки разрешений всё работает как надо.


Успешный запуск bash-скрипта

Вывод сообщений

Для вывода текста в консоль Linux применяется команда

echo

. Воспользуемся знанием этого факта и отредактируем наш скрипт, добавив пояснения к данным, которые выводят уже имеющиеся в нём команды:

#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami

Вот что получится после запуска обновлённого скрипта.


Вывод сообщений из скрипта

Теперь мы можем выводить поясняющие надписи, используя команду echo. Если вы не знаете, как отредактировать файл, пользуясь средствами Linux, или раньше не встречались с командой echo, взгляните на этот материал.

Использование переменных

Переменные позволяют хранить в файле сценария информацию, например — результаты работы команд для использования их другими командами.

Нет ничего плохого в исполнении отдельных команд без хранения результатов их работы, но возможности такого подхода весьма ограничены.

Существуют два типа переменных, которые можно использовать в bash-скриптах:

  • Переменные среды
  • Пользовательские переменные

Переменные среды

Иногда в командах оболочки нужно работать с некими системными данными. Вот, например, как вывести домашнюю директорию текущего пользователя:

#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"

Обратите внимание на то, что мы можем использовать системную переменную

$HOME

в двойных кавычках, это не помешает системе её распознать. Вот что получится, если выполнить вышеприведённый сценарий.


Использование переменной среды в сценарии

А что если надо вывести на экран значок доллара? Попробуем так:

echo "I have $1 in my pocket"

Система обнаружит знак доллара в строке, ограниченной кавычками, и решит, что мы сослались на переменную. Скрипт попытается вывести на экран значение неопределённой переменной

$1

. Это не то, что нам нужно. Что делать?

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

echo "I have \$1 in my pocket"

Теперь сценарий выведет именно то, что ожидается.


Использование управляющей последовательности для вывода знака доллара

Пользовательские переменные

В дополнение к переменным среды, bash-скрипты позволяют задавать и использовать в сценарии собственные переменные. Подобные переменные хранят значение до тех пор, пока не завершится выполнение сценария.

Как и в случае с системными переменными, к пользовательским переменным можно обращаться, используя знак доллара:

#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"

Вот что получится после запуска такого сценария.


Пользовательские переменные в сценарии

Подстановка команд

Одна из самых полезных возможностей bash-скриптов — это возможность извлекать информацию из вывода команд и назначать её переменным, что позволяет использовать эту информацию где угодно в файле сценария.

Сделать это можно двумя способами.

  • С помощью значка обратного апострофа «`»
  • С помощью конструкции $()

Используя первый подход, проследите за тем, чтобы вместо обратного апострофа не ввести одиночную кавычку. Команду нужно заключить в два таких значка:

mydir=`pwd`

При втором подходе то же самое записывают так:

mydir=$(pwd)

А скрипт, в итоге, может выглядеть так:

#!/bin/bash
mydir=$(pwd)
echo $mydir

В ходе его работы вывод команды

pwd

будет сохранён в переменной

mydir

, содержимое которой, с помощью команды

echo

, попадёт в консоль.


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

Математические операции

Для выполнения математических операций в файле скрипта можно использовать конструкцию вида

$((a+b))

:

#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2


Математические операции в сценарии

Управляющая конструкция if-then

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

if-then

. В наиболее простом виде она выглядит так:

if команда
then
команды
fi

А вот рабочий пример:

#!/bin/bash
if pwd
then
echo "It works"
fi

В данном случае, если выполнение команды

pwd

завершится успешно, в консоль будет выведен текст «it works».

Воспользуемся имеющимися у нас знаниями и напишем более сложный сценарий. Скажем, надо найти некоего пользователя в /etc/passwd, и если найти его удалось, сообщить о том, что он существует.

#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi

Вот что получается после запуска этого скрипта.


Поиск пользователя

Здесь мы воспользовались командой grepдля поиска пользователя в файле /etc/passwd. Если команда grepвам незнакома, её описание можно найти здесь.

В этом примере, если пользователь найден, скрипт выведет соответствующее сообщение. А если найти пользователя не удалось? В данном случае скрипт просто завершит выполнение, ничего нам не сообщив. Хотелось бы, чтобы он сказал нам и об этом, поэтому усовершенствуем код.

Управляющая конструкция if-then-else

Для того, чтобы программа смогла сообщить и о результатах успешного поиска, и о неудаче, воспользуемся конструкцией

if-then-else

. Вот как она устроена:

if команда
then
команды
else
команды
fi

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

else

. В противном случае, если будет возвращено что-то, отличающееся от нуля, что будет означать неудачу, или ложный результат, будут выполнены команды, расположенные после

else

.

Напишем такой скрипт:

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesn’t exist"
fi

Его исполнение пошло по ветке

else

.


Запуск скрипта с конструкцией if-then-else

Ну что же, продолжаем двигаться дальше и зададимся вопросом о более сложных условиях. Что если надо проверить не одно условие, а несколько? Например, если нужный пользователь найден, надо вывести одно сообщение, если выполняется ещё какое-то условие — ещё одно сообщение, и так далее. В подобной ситуации нам помогут вложенные условия. Выглядит это так:

if команда1
then
команды
elif команда2
then
команды
fi

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

then

, иначе, если первое условие окажется ложным, и если вторая команда вернёт ноль, выполнится второй блок кода.

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesn’t exist but anyway there is a directory under /home"
fi

В подобном скрипте можно, например, создавать нового пользователя с помощью команды

useradd

, если поиск не дал результатов, или делать ещё что-нибудь полезное.

Сравнение чисел

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

n1 -eq n2Возвращает истинное значение, если n1 равно n2.
n1 -ge n2 Возвращает истинное значение, если n1больше или равно n2.
n1 -gt n2Возвращает истинное значение, если n1 больше n2.
n1 -le n2Возвращает истинное значение, если n1меньше или равно n2.
n1 -lt n2Возвращает истинное значение, если n1 меньше n2.
n1 -ne n2Возвращает истинное значение, если n1не равно n2.

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

#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi

Вот что выведет эта команда.


Сравнение чисел в скриптах

Значение переменной val1больше чем 5, в итоге выполняется ветвь thenоператора сравнения и в консоль выводится соответствующее сообщение.

Сравнение строк

В сценариях можно сравнивать и строковые значения. Операторы сравнения выглядят довольно просто, однако у операций сравнения строк есть определённые особенности, которых мы коснёмся ниже. Вот список операторов.

str1 = str2 Проверяет строки на равенство, возвращает истину, если строки идентичны.
str1 != str2Возвращает истину, если строки не идентичны.
str1 < str2Возвращает истину, если str1меньше, чем str2.
str1 > str2 Возвращает истину, если str1больше, чем str2.
-n str1 Возвращает истину, если длина str1больше нуля.
-z str1Возвращает истину, если длина str1равна нулю.

Вот пример сравнения строк в сценарии:

#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user  is the current logged in user"
fi

В результате выполнения скрипта получим следующее.


Сравнение строк в скриптах

Вот одна особенность сравнения строк, о которой стоит упомянуть. А именно, операторы «>» и «<» необходимо экранировать с помощью обратной косой черты, иначе скрипт будет работать неправильно, хотя сообщений об ошибках и не появится. Скрипт интерпретирует знак «>» как команду перенаправления вывода.

Вот как работа с этими операторами выглядит в коде:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 \> $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Вот результаты работы скрипта.


Сравнение строк, выведенное предупреждение

Обратите внимание на то, что скрипт, хотя и выполняется, выдаёт предупреждение:

./myscript: line 5: [: too many arguments

Для того, чтобы избавиться от этого предупреждения, заключим

$val2

в двойные кавычки:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 \> "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Теперь всё работает как надо.


Сравнение строк

Ещё одна особенность операторов «>» и «<» заключается в том, как они работают с символами в верхнем и нижнем регистрах. Для того, чтобы понять эту особенность, подготовим текстовый файл с таким содержимым:

Likegeeks
likegeeks

Сохраним его, дав имя

myfile

, после чего выполним в терминале такую команду:

sort myfile

Она отсортирует строки из файла так:

likegeeks
Likegeeks

Команда

sort

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

#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 \> $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Если его запустить, окажется, что всё наоборот — строчная буква теперь больше прописной.


Команда sort и сравнение строк в файле сценария

В командах сравнения прописные буквы меньше строчных. Сравнение строк здесь выполняется путём сравнения ASCII-кодов символов, порядок сортировки, таким образом, зависит от кодов символов.

Команда sort, в свою очередь, использует порядок сортировки, заданный в настройках системного языка.

Проверки файлов

Пожалуй, нижеприведённые команды используются в bash-скриптах чаще всего. Они позволяют проверять различные условия, касающиеся файлов. Вот список этих команд.

-d fileПроверяет, существует ли файл, и является ли он директорией.
-e fileПроверяет, существует ли файл.
-f file Проверяет, существует ли файл, и является ли он файлом.
-r fileПроверяет, существует ли файл, и доступен ли он для чтения.
-s file Проверяет, существует ли файл, и не является ли он пустым.
-w fileПроверяет, существует ли файл, и доступен ли он для записи.
-x fileПроверяет, существует ли файл, и является ли он исполняемым.
file1 -nt file2 Проверяет, новее ли file1, чем file2.
file1 -ot file2Проверяет, старше ли file1, чем file2.
-O file Проверяет, существует ли файл, и является ли его владельцем текущий пользователь.
-G fileПроверяет, существует ли файл, и соответствует ли его идентификатор группы идентификатору группы текущего пользователя.

Эти команды, как впрочем, и многие другие рассмотренные сегодня, несложно запомнить. Их имена, являясь сокращениями от различных слов, прямо указывают на выполняемые ими проверки.

Опробуем одну из команд на практике:

#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi

Этот скрипт, для существующей директории, выведет её содержимое.


Вывод содержимого директории

Полагаем, с остальными командами вы сможете поэкспериментировать самостоятельно, все они применяются по тому же принципу.

Итоги

Сегодня мы рассказали о том, как приступить к написанию bash-скриптов и рассмотрели некоторые базовые вещи. На самом деле, тема bash-программирования огромна. Эта статья является переводом первой части большой серии из 11 материалов. Если вы хотите продолжения прямо сейчас — вот список оригиналов этих материалов. Для удобства сюда включён и тот, перевод которого вы только что прочли.

  1. Bash Script Step By Step — здесь речь идёт о том, как начать создание bash-скриптов, рассмотрено использование переменных, описаны условные конструкции, вычисления, сравнения чисел, строк, выяснение сведений о файлах.
  2. Bash Scripting Part 2, Bash the awesome — тут раскрываются особенности работы с циклами for и while.
  3. Bash Scripting Part 3, Parameters & options — этот материал посвящён параметрам командной строки и ключам, которые можно передавать скриптам, работе с данными, которые вводит пользователь, и которые можно читать из файлов.
  4. Bash Scripting Part 4, Input & Output — здесь речь идёт о дескрипторах файлов и о работе с ними, о потоках ввода, вывода, ошибок, о перенаправлении вывода.
  5. Bash Scripting Part 5, Sighals & Jobs — этот материал посвящён сигналам Linux, их обработке в скриптах, запуску сценариев по расписанию.
  6. Bash Scripting Part 6, Functions — тут можно узнать о создании и использовании функций в скриптах, о разработке библиотек.
  7. Bash Scripting Part 7, Using sed — эта статья посвящена работе с потоковым текстовым редактором sed.
  8. Bash Scripting Part 8, Using awk — данный материал посвящён программированию на языке обработки данных awk.
  9. Bash Scripting Part 9, Regular Expressions — тут можно почитать об использовании регулярных выражений в bash-скриптах.
  10. Bash Scripting Part 10, Practical Examples — здесь приведены приёмы работы с сообщениями, которые можно отправлять пользователям, а так же методика мониторинга диска.
  11. Bash Scripting Part 11, Expect Command — этот материал посвящён средству Expect, с помощью которого можно автоматизировать взаимодействие с интерактивными утилитами. В частности, здесь идёт речь об expect-скриптах и об их взаимодействии с bash-скриптами и другими программами.

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

Уважаемые читатели! Просим гуру bash-программирования рассказать о том, как они добрались до вершин мастерства, поделиться секретами, а от тех, кто только что написал свой первый скрипт, ждём впечатлений.

Выполнить скрипты

Когда вы запускаете скрипт в Google Analytics, каждая команда в скрипте обрабатывается. последовательно, пока не будет достигнут конец сценария.

Вы не можете продолжать работу в Analytics, пока скрипт запущен, и вы можете запускать только один скрипт за раз. Однако, используя команду DO SCRIPT, вы можете создавать сценарии, которые вызывают и запускают другие сценарии.

Статус скрипта

Во время выполнения сценария Analytics отображает статус обработки и имя сценария или нижнего индекса в строке состояния.

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

При необходимости вы можете остановить обработку скрипта, нажав клавишу Esc или закрыв Analytics.

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

Есть два разных способа запустить скрипт из главного меню:

Запуск сценария на вкладке Обзор

На вкладке «Обзор» в навигаторе щелкните правой кнопкой мыши значок скрипт в древовидной структуре и выберите «Выполнить».

Запуск сценария из редактора сценариев

Открыть скрипт в Скрипте Editor и нажмите кнопку «Выполнить» на панели инструментов редактора сценариев.

Если вы внесли изменения в скрипт в скрипте Редактор, изменения автоматически сохраняются, когда вы запустить скрипт.

Запуск сценария из командной строки Windows

Вы можете запустить сценарий из командной строки Windows или из командного файла (*.bat), который позволяет вам планировать сценарий с помощью такой утилиты, как Windows Task Scheduler, и запускать его без присмотра.

Синтаксис командной строки использует эту базовую форму:

  acl_executable_path_and_filename   acl_project_path_and_filename   VarName  =  value > / b  Script_name   

Пример

Приведенный ниже синтаксис командной строки открывает пример проекта.ACL и запускает сценарий Calculate_Median_Value.

«C: \ Program Files (x86) \ ACL Software \ ACL для Windows 14 \ ACLWin.exe» «C: \ Users \ имя пользователя \ Documents \ ACL Data \ Sample Data Files \ Sample Project.ACL» / vv_table_name = «Ap_Trans» / vv_field_name = «Invoice_Amount» / bCalculate_Median_Value

Синтаксис командной строки

Примечание

Укажите полные пути к исполняемому файлу Analytics и проекту Analytics, включая имя файла и расширение файла.Если путь включает пробелы, заключите путь в кавычки.

Параметр Детали Пример
«ACL_exe_path_and_filename»

Задает путь к исполняемому файлу Google Analytics и имя исполняемого файла (ACLWin.EXE).

 "C: \ Program Files (x86) \ ACL Software \ ACL для Windows 14 \ ACLWin.exe" 
«Путь_и_файла_проекта ACL»

Задает путь к файлу проекта Analytics и имя файла проекта (*.acl), содержащий сценарий.

 "C: \ Users \  имя пользователя  \ Documents \ ACL Data \ Sample Data Files \ Sample Project.ACL" 

/ v

опционально

Задает имена переменных и присваивает значения.Переменные инициализируются автоматически при открытии проекта Analytics.

Не вводите пробел между переключателем / v и именем переменной. Например, для переменной v_table_name:

 / vv_table_name = "Ap_Trans" 

Примечание

Тип данных присвоенного значения должен соответствовать типу данных переменной в скрипте.Если типы данных не совпадают, возникает ошибка «Несоответствие типа выражения» и сценарий завершается ошибкой.

Используйте кавычки для уточнения значений символов и обратные кавычки для уточнения значений даты и времени.

Символьные переменные

 / vv_table_name = "Ap_Trans" / vv_field_name = "Invoice_Amount" 

Числовая переменная

 / vv_materiality = 10000 

Переменные даты и времени

 / vv_start_date = `20180101` / vv_end_date =` 20180331` 

/ б

Задает имя запускаемого сценария.

Не вводите пробел между переключателем / b и именем сценария.

 / bCalculate_Median_Value 

/ мин

опционально

Указывает, что Аналитика сворачивается при открытии.

Рекомендации по созданию сценария, который запускается в автоматическом режиме

Избегайте взаимодействия с пользователем

Не включайте ни одну из следующих команд взаимодействия с пользователем:

  • ДИАЛОГ
  • ПРИНЯТЬ
  • ПАРОЛЬ
  • ПАУЗА

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

Подавить диалоговые окна подтверждения

Добавьте команду SET SAFETY OFF в начале скрипта, чтобы при необходимости файлы можно было перезаписывать без отображение диалогового окна подтверждения.Добавить НАБОР Команда SAFETY ON в конце скрипта для восстановления поведение по умолчанию.

Добавьте параметр ОК после любой команды, например УДАЛИТЬ или ПЕРЕИМЕНОВАТЬ, который обычно отображает диалоговое окно подтверждения.

Выйти из аналитики Завершите сценарий, введя команду QUIT, чтобы выйти из Analytics.

Запуск сценария с помощью ярлыка Windows

Вы можете запустить сценарий с ярлыка Windows.

  1. Создайте ярлык для Google Analytics.
  2. Щелкните ярлык правой кнопкой мыши и выберите «Свойства».
  3. В поле «Цель» введите соответствующий синтаксис командной строки (см. Выше).
  4. Нажмите ОК.
  5. Дважды щелкните ярлык, чтобы запустить сценарий.

Как запустить сценарий оболочки в Linux [основные сведения]

Есть два способа запустить сценарий оболочки в Linux. Вы можете использовать:

  bash script.sh  

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

 ./script.sh  

Это может быть просто, но многого не объясняет. Не волнуйтесь, я сделаю необходимое объяснение на примерах, чтобы вы поняли, почему тот или иной синтаксис используется в данном формате при запуске сценария оболочки.

Я собираюсь использовать этот однострочный сценарий оболочки, чтобы сделать все как можно проще:

  [адрес электронной почты защищен]: ~ / Scripts $ cat hello.sh

эхо "Hello World!"  

Метод 1. Запуск сценария оболочки путем передачи файла в качестве аргумента оболочки

Первый метод включает передачу имени файла сценария в качестве аргумента оболочки.

Учитывая, что bash является оболочкой по умолчанию, вы можете запустить такой сценарий:

  Баш hello.sh  

Знаете ли вы преимущества такого подхода? Вашему сценарию не требуется разрешение на выполнение . Довольно удобно для быстрых и простых задач.

Запуск сценария оболочки Linux

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

Имейте в виду, что это должен быть сценарий оболочки, который вы передаете в качестве аргумента.Сценарий оболочки состоит из команд. Если вы используете обычный текстовый файл, он будет жаловаться на неправильные команды.

Запуск текстового файла как сценария

В этом подходе, , вы явно указали, что хотите использовать bash в качестве интерпретатора для сценария.

Shell — это просто программа, а bash — ее реализация. Существуют и другие такие программы-оболочки, такие как ksh, zsh и т. Д. Если у вас установлены другие оболочки, вы также можете использовать их вместо bash.

Например, я установил zsh и использовал его для запуска того же сценария:

Выполнить сценарий оболочки с помощью Zsh .ugb-container__side {padding-top: 35px! important; padding-bottom: 35px! important} .ugb-4037db6-wrapper.ugb-container__wrapper: before {background-color: # f1f1f1! important} .ugb-4037db6-content-wrapper > h2, .ugb-4037db6-content-wrapper> h3, .ugb-4037db6-content-wrapper> h4, .ugb-4037db6-content-wrapper> h5, .ugb-4037db6-content-wrapper> h5, .ugb- 4037db6-content-wrapper> h6 {color: # 222222} .ugb-4037db6-content-wrapper> p, .ugb-4037db6-content-wrapper> ol li, .ugb-4037db6-content-wrapper> ul li {color: # 222222}]]>

Рекомендуется к прочтению:

Метод 2: Выполнить сценарий оболочки, указав его путь

Другой способ запустить сценарий оболочки — указать путь к нему.Но для этого ваш файл должен быть исполняемым. В противном случае при попытке выполнить сценарий вы получите сообщение об ошибке «В разрешении отказано».

Итак, сначала вам нужно убедиться, что ваш скрипт имеет разрешение на выполнение. Вы можете использовать команду chmod, чтобы дать себе это разрешение, например:

  chmod u + x script.sh  

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

 ./script.sh  

Если вы находитесь не в том же каталоге, что и ваш скрипт, вы можете указать ему абсолютный или относительный путь к скрипту:

Запуск сценария оболочки в другом каталоге

Это ./ перед скриптом важно (когда вы находитесь в том же каталоге, что и скрипт)

Почему вы не можете использовать имя сценария, когда находитесь в том же каталоге? Это связано с тем, что ваши системы Linux ищут исполняемые файлы для запуска в нескольких выбранных каталогах, указанных в переменной PATH.

Вот значение переменной PATH для моей системы:

  [адрес электронной почты защищен]: ~ $ echo $ PATH
/home/abhishek/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/ игры: / snap / bin  

Это означает, что любой файл с разрешениями на выполнение в одном из следующих каталогов может быть запущен из любого места в системе:

  • /home/abhishek/.local/bin
  • / usr / local / sbin
  • / usr / local / bin
  • / usr / sbin
  • / usr / bin
  • / sbin
  • / bin
  • / usr / games
  • / usr / local / games
  • / snap / bin

Бинарные или исполняемые файлы для команд Linux, таких как ls, cat и т. д., находятся в одном из этих каталогов.Вот почему вы можете запускать эти команды из любой точки вашей системы, просто используя их имена. Смотрите, команда ls находится в каталоге / usr / bin.

Когда вы указываете сценарий БЕЗ абсолютного или относительного пути, он не может найти его в каталогах, указанных в переменной PATH.

Почему большинство сценариев оболочки содержат #! / bin / bash в начале сценариев оболочки?

Вспомните, как я упоминал, что оболочка — это просто программа, и существуют разные реализации оболочек.

Когда вы используете #! / bin / bash, вы указываете, что сценарий должен запускаться с bash в качестве интерпретатора. Если вы этого не сделаете и запустите сценарий в формате ./script.sh, он обычно запускается с любой запущенной вами оболочкой.

Это имеет значение? Это могло бы. Видите ли, большая часть синтаксиса оболочки является общей для всех типов оболочки, но некоторые могут отличаться.

Например, поведение массива отличается в оболочках bash и zsh. В zsh индекс массива начинается с 1 вместо 0.

Bash Vs Zsh

Использование #! / bin / bash указывает, что сценарий является сценарием оболочки bash и должен запускаться с bash в качестве интерпретатора независимо от оболочки, которая используется в системе.Если вы используете специфический для zsh синтаксис, вы можете указать, что это скрипт zsh, добавив #! / bin / zsh в качестве первой строки скрипта.

Пробел между #! / bin / bash не имеет значения. Вы также можете использовать #! / Bin / bash.

Было ли это полезно?

Надеюсь, эта статья расширила ваши знания о Linux. Если у вас остались вопросы или предложения, оставьте, пожалуйста, комментарий.

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

Если вы заинтересованы в изучении сценария bash, у нас есть целая серия статей о Bash для начинающих на нашем веб-сайте Linux Handbook, посвященном системным администраторам. Если вы хотите, вы также можете приобрести электронную книгу с дополнительными упражнениями для поддержки Linux Handbook.


Нравится то, что вы читаете? Пожалуйста, поделитесь этим с другими.

Выполнить сценарий на узле

Этот виджет доступен пользователям с ролью WebUploader, Engineer или Administrator.

Выполняемый сценарий должен быть сохранен в виде текстового файла, который можно загрузить с клиентского компьютера. Дополнительные сведения о создании командных сценариев см. В разделе Создание исполняемого командного сценария в NCM.

  1. Щелкните Мои панели мониторинга> Конфигурация сети> Управление конфигурацией.

    Если у вас нет прав администратора, возможно, вы не сможете видеть некоторые узлы. Ваша учетная запись должна иметь как минимум роль WebDownloader для загрузки конфигураций и роль WebUploader для выполнения сценария для узлов.

  2. Выберите один или несколько узлов.
  3. Щелкните «Выполнить сценарий».
  4. Выберите сценарий для выполнения или щелкните «Загрузить сценарий из файла» и найдите его в файловой системе.

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

    {Command 1}
    $ {Delay: 20}
    {Command 2}

    Эта функция полезна, например, при загрузке флеш-образа.Перед загрузкой изображения требуется некоторое время для завершения форматирования флэш-памяти.

  5. Если вы ввели или обновили сценарий и хотите сохранить его в файл, выберите «Сохранить сценарий» и введите имя файла.
  6. Если вы хотите, чтобы NCM переводил устройство в режим конфигурации перед выполнением сценария, выберите «Выполнить сценарий в режиме конфигурации».

    Например, на устройствах Cisco, когда этот параметр выбран, NCM отправляет на устройство команду config t перед выполнением сценария на устройстве. На некоторых устройствах для внесения изменений в устройство требуется режим конфигурации.

  7. Щелкните «Выполнить».

Посмотреть результаты

  1. Щелкните Мои панели мониторинга> Конфигурация сети> Управление конфигурацией.
  2. Щелкните Состояние передачи.
  3. В столбце «Действие» найдите самую последнюю запись с меткой «Выполнить сценарий».
  4. В столбце «Состояние / подробности» щелкните «Показать результаты сценария».

Устранение неполадок при выполнении скрипта

Если сценарий не выполняется на узле NCM, просмотрите журнал на предмет возможной причины.Журнал находится по адресу C: \ ProgramData \ SolarWinds \ NCM \ Logging \ NCMBusinessLayerPlugin.log .

Или выполните сценарий, используя Создание заданий NCM и управление ими.

Execute Script — документация RapidMiner

Описание

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

Groovy — гибкий и динамичный язык для виртуальной машины Java. Он основан на сильных сторонах Java, но имеет дополнительные мощные функции, вдохновленные такими языками, как Python, Ruby и Smalltalk. Groovy хорошо интегрируется со всеми существующими классами и библиотеками Java, поскольку он компилируется прямо в байт-код Java, поэтому вы можете использовать его везде, где можно использовать Java. Полную справку по скриптам Groovy можно найти на http://groovy.codehaus.org/.

В дополнение к обычным элементам кода сценария из Groovy оператор сценария RapidMiner определяет некоторые специальные элементы сценария:

  • Если для стандартного параметра импорта установлено значение true, все важные типы, такие как Example, ExampleSet, Attribute, Operator и т. Д., А также наиболее важные типы Java, такие как коллекции и т. Д., Автоматически импортируются и могут напрямую использоваться в скрипте.Следовательно, нет необходимости импортировать их в ваш скрипт. Однако вы можете импортировать любой другой класс и использовать его в своем скрипте.
  • На текущий оператор (оператор сценария, для которого вы определяете сценарий) ссылается оператор. Пример: operator.log («text»)
  • Все методы операторов, такие как log (см. Выше), которые обращаются к вводу или ко всему процессу, можно использовать напрямую, написав предыдущий оператор. Пример: operator.getProcess ()
  • Ввод оператора можно получить с помощью метода ввода getInput (Class) окружающего оператора.Пример: ExampleSet exampleSet = operator.getInput (ExampleSet.class)
  • Вы можете перебирать примеры с помощью следующей конструкции: for (Example example: exampleSet) {…}
  • Вы можете получить примеры значений с помощью ярлыка: В случае нечисловых значений: String value = example [«attribute_name»]; В случае числовых значений: double value = example [«attribute_name»];
  • Вы можете установить примерные значения с помощью ярлыка: В случае нечисловых значений: пример [«attribute_name»] = «value»; В случае числовых значений: пример [«attribute_name»] = 5.7;

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

Учебные процессы

Перебор атрибутов для изменения имен атрибутов на нижний регистр

Набор данных «Покупки» загружается с помощью оператора Retrieve. Сюда вставляется точка останова, чтобы вы могли просмотреть ExampleSet.Обратите внимание, что имена всех атрибутов ExampleSet пишутся заглавными буквами. Оператор Script применяется к ExampleSet. Сценарий меняет имена атрибутов на строчные буквы. Это можно проверить, просмотрев результаты в рабочей области результатов.

Вот краткое описание того, что происходит в скрипте. Сначала ввод оператора извлекается с помощью метода ввода getInput (Class). Затем цикл for выполняет итерацию для всех атрибутов и использует метод toLowerCase () для изменения имен атрибутов на строчные буквы.В конце возвращается измененный ExampleSet.

Обратите внимание, что это очень простой скрипт, он был включен сюда только для того, чтобы познакомить вас с работой этого оператора. Этот оператор можно использовать для выполнения очень сложных задач.

Перебор всех примеров для изменения значений атрибутов на верхний регистр

Набор данных «Покупки» загружается с помощью оператора Retrieve. Сюда вставляется точка останова, чтобы вы могли просмотреть ExampleSet. Обратите внимание, что значения всех атрибутов ExampleSet набираются строчными буквами.Оператор Script применяется к ExampleSet. Сценарий изменяет значения атрибутов на прописные буквы. Это можно проверить, просмотрев результаты в рабочей области результатов.

Вот краткое описание того, что происходит в скрипте. Сначала ввод оператора извлекается с помощью метода ввода getInput (Class). Затем внешний цикл for выполняет итерацию для всех атрибутов и сохраняет имя текущего атрибута в строковой переменной. Затем внутренний цикл for перебирает все примеры текущего атрибута и меняет значения с нижнего на верхний регистр с помощью метода toUpperCase ().В конце возвращается измененный ExampleSet.

Обратите внимание, что это очень простой скрипт, он был включен сюда только для того, чтобы познакомить вас с работой этого оператора. Этот оператор можно использовать для выполнения очень сложных задач.

Вычитание среднего числовых атрибутов из значений атрибутов

Набор данных «Гольф» загружается с помощью оператора Retrieve. Сюда вставляется точка останова, чтобы вы могли просмотреть ExampleSet. Обратите внимание на значения атрибутов «Температура» и «Влажность».Оператор Script применяется к ExampleSet. Скрипт вычитает среднее значение каждого числового атрибута из всех значений этого атрибута. Это можно проверить, просмотрев результаты в рабочей области результатов.

Вот краткое описание того, что происходит в скрипте. Сначала ввод оператора извлекается с помощью метода ввода getInput (Class). Затем внешний цикл for выполняет итерацию для всех атрибутов и сохраняет имя текущего атрибута в строковой переменной и среднее значение этого атрибута в переменной типа double.Затем внутренний цикл for перебирает все примеры текущего атрибута и вычитает среднее значение из текущего значения примера. В конце возвращается измененный ExampleSet.

Обратите внимание, что это очень простой скрипт, он был включен сюда только для того, чтобы познакомить вас с работой этого оператора. Этот оператор можно использовать для выполнения очень сложных задач.

.execute скрипт базы данных — Azure Data Explorer

  • Статья
  • .
  • 2 минуты на чтение
Эта страница полезна?

Оцените свой опыт

да Нет

Любой дополнительный отзыв?

Отзыв будет отправлен в Microsoft: при нажатии кнопки «Отправить» ваш отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.

Представлять на рассмотрение

В этой статье

Выполняет пакет управляющих команд в рамках одной базы данных.

Синтаксис

. Выполнить базу данных скрипт
[ с ( PropertyName = PropertyValue [, …] ) ]
<|
Сценарий команд управления

Параметры

  • Сценарий команд управления : текст с одной или несколькими управляющими командами.
  • Область базы данных : сценарий применяется к области базы данных , указанной как часть контекста запроса.

Дополнительные свойства

Объект Тип Описание
ContinueOnErrors булев Если установлено значение false - скрипт остановится при первой ошибке.Если установлено значение true - выполнение скрипта продолжается. По умолчанию: false .
ThrowOnErrors булев Если установлено значение true - скрипт выдает ошибку (сбой) при первой ошибке. Не работает вместе с ContinueOnErrors , разрешен только один. По умолчанию: false .

Выход

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

Выходной параметр Тип Описание
OperationId Guid Идентификатор команды.
CommandType Строка Тип команды.
CommandText Строка Текст конкретной команды.
Результат Строка Результат выполнения определенной команды.
Причина Строка Подробная информация о результате выполнения команды.

Примечание

  • Текст сценария может включать пустые строки и комментарии между командами.
  • Команды выполняются последовательно в том порядке, в котором они появляются во входном скрипте.
  • Выполнение скрипта не является транзакционным, и в случае ошибки откат не выполняется. При использовании рекомендуется использовать идемпотентную форму команд.выполнить сценарий базы данных .
  • Поведение команды по умолчанию - сбой при первой ошибке, его можно изменить с помощью аргумента свойства.
  • Управляющие команды только для чтения ( .show команды) не выполняются и сообщаются со статусом Пропущено .

Подсказка

  • Эта команда полезна, если вы хотите «клонировать» / «дублировать» существующую базу данных. Вы можете использовать команду .show database schema в существующей базе данных (исходной базе данных) и использовать ее вывод как сценарий Control-commands-script of ".выполнить скрипт базы данных ».
  • Если вы хотите «клонировать» / «продублировать» кластер, вы можете использовать экспорт его шаблона ARM и воссоздать ресурс.

Пример

 . Выполнить сценарий базы данных <|
//
// Создаем таблицы
.create-merge table T (a: строка, b: строка)
//
// Применяем политики
.alter-merge table Хранение политики T softdelete = 10d
//
// Создаем функции
.create-or-alter функция
  с (skipvalidation = "true")
  SampleT1 (myLimit: long) {
    T1 | ограничить myLimit
}
  
OperationId CommandType CommandText Результат Причина
1d28531b-58c8-4023-a5d3-16fa73c06cfa TableCreate .таблица создания-слияния T (a: строка, b: строка) Завершен
67d0ea69-baa4-419a-93d3-234c03834360 RetentionPolicyAlter .alter-merge table T policy retention softdelete = 10d Завершен
0b0e8769-d4e8-4ff9-adae-071e52a650c7 Функция CreateOrAlter .create-or-alter функция с (skipvalidation = "true") SampleT1 (myLimit: long) {T1 | limit myLimit} Завершен

Выполнение сценариев через шаги рабочего процесса

Чтобы выполнить сценарий в рабочем процессе, вы можете добавить шаг «Выполнить сценарий» или «Выполнить встроенный» в рабочий процесс или модуль рабочего процесса.

Два типа шагов рабочего процесса предлагают одни и те же базовые функции, но они реализованы и получают содержимое скрипта по-разному:

  • Шаг «Выполнить скрипт» - на этом шаге выполняется скрипт, сохраненный в локальной системе. Для этого типа сценария необходимо указать абсолютный путь к исполняемому файлу.
  • Шаг «Выполнить встроенный скрипт» - на этом шаге выполняется скрипт, содержимое которого предоставляется на самом шаге рабочего процесса (то есть в определении рабочего процесса), а не сохраняется на диске.Это дает несколько преимуществ:
    • Делает шаг переносимым - если вы экспортируете рабочий процесс или модуль и используете его в другой установке Commander, вам не нужно загружать отдельный файл сценария.
    • Переменные могут быть разрешены, и данные могут быть добавлены к содержимому скрипта во время выполнения. Например, переменные среды могут использоваться для предоставления необходимых учетных данных сценарию. Для получения дополнительной информации см. Использование переменных среды для учетных данных.
    • Версия встроенного сценария зависит от рабочего процесса.Это означает, что если вы измените содержимое сценария и сохраните шаг, каждая новая версия рабочего процесса или модуля будет сохранять ваши изменения. При необходимости вы можете вернуться к предыдущей версии. Для получения дополнительной информации см. Управление редакциями рабочего процесса.

Для получения дополнительной информации см .:

Шаги рабочего процесса добавления сценария выполнения

Доступ:

Конфигурация> Рабочие процессы команд

Конфигурация> Самообслуживание> Вкладка Утверждение

Конфигурация> Самообслуживание> Вкладка «Завершение»

Доступно для:

Командирская роль суперпользователя и администратора предприятия

  1. На странице Шаги одного из рабочих процессов или конфигурации модуля рабочего процесса мастера, щелкните Добавить> Выполнить сценарий .
  2. В разделе сведений измените имя шага по умолчанию «Выполнить сценарий», если хотите.
  3. Для Выполнение шага укажите, хотите ли вы, чтобы шаг выполнялся автоматически (поведение по умолчанию) или выполнялся только при соблюдении определенных условий. Чтобы сделать шаг условным, выберите Выполнить при соблюдении условий , затем щелкните Изменить и определите условие. Дополнительные сведения см. В разделе «Сделать шаги рабочего процесса условными».
  4. Для Тайм-аут , при необходимости отрегулируйте тайм-аут по умолчанию.Шаг не будет выполнен, если он не может быть завершен за отведенное время.
  5. Для выходных данных сценария укажите, следует ли записывать значение, возвращаемое сценарием, в качестве комментария, таким образом определяя, одобрен или отклонен запрос. Когда вы записываете выходные данные сценария в качестве комментария, вы можете использовать выходные данные сценария в качестве входных данных для последующего шага установки настраиваемого атрибута (см. Использование выходных данных сценария в качестве входных данных для шагов рабочего процесса). Сценарии в рабочих процессах утверждения также могут устанавливать параметры развертывания (см. Определение параметров развертывания для служб).
  6. При сбое сценария выполните одно из следующих действий, чтобы указать, что делать в случае сбоя сценария:
    • Отметить шаг как неудачный и не продолжать.
    • Пропустите этот шаг и перейдите к следующему шагу рабочего процесса.

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

  7. Для командной строки введите сценарий, который вы хотите выполнить.

    Примечание: Вы должны указать абсолютный путь к исполняемому файлу в поле командной строки, даже если исполняемый файл существует в пути Windows. В противном случае Java может попытаться выполнить команду в неправильном месте.

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

Добавить шаги рабочего процесса Execute Embedded Script

Доступ:

Конфигурация> Рабочие процессы команд

Конфигурация> Самообслуживание> вкладка Утверждение

Конфигурация> Самообслуживание> Вкладка Завершение

Доступен для:

Командирская роль суперпользователя и администратора предприятия

  1. На странице Шаги одного из мастеров настройки рабочего процесса или модуля рабочего процесса щелкните Добавить> Выполнить встроенный скрипт .
  2. В разделе сведений при желании измените имя шага по умолчанию «Выполнить встроенный скрипт».
  3. Для Выполнение шага укажите, хотите ли вы, чтобы шаг выполнялся автоматически (поведение по умолчанию) или выполнялся только при соблюдении определенных условий. Чтобы сделать шаг условным, выберите Выполнить при соблюдении условий , затем щелкните Изменить и определите условие. Дополнительные сведения см. В разделе «Сделать шаги рабочего процесса условными».
  4. Для Тайм-аут , при необходимости отрегулируйте тайм-аут по умолчанию.Шаг не будет выполнен, если он не может быть завершен за отведенное время.
  5. Для выходных данных сценария укажите, следует ли записывать значение, возвращаемое сценарием, в качестве комментария, таким образом определяя, одобрен или отклонен запрос. Когда вы записываете выходные данные сценария в качестве комментария, вы можете использовать выходные данные сценария в качестве входных данных для последующего шага установки настраиваемого атрибута (см. Использование выходных данных сценария в качестве входных данных для шагов рабочего процесса). Сценарии в рабочих процессах утверждения также могут устанавливать параметры развертывания (см. Определение параметров развертывания для служб).
  6. Для Сбой сценария выберите один из следующих вариантов, чтобы указать, что делать в случае сбоя сценария:
    • Отметить шаг как неудачный и не продолжать.
    • Пропустите этот шаг и перейдите к следующему шагу рабочего процесса.

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

  7. Для Credentials выберите или добавьте учетные данные гостевой ОС, необходимые для запуска сценария.См. Раздел Управление учетными данными для получения дополнительной информации.

    Совет: Вместо жесткого кодирования учетных данных можно использовать переменные среды для предоставления учетных данных сценарию при его выполнении. Для получения дополнительной информации см. Выбранные учетные данные.

    Рекомендация: Если вы выбрали «Захватить вывод сценария в качестве комментария», не используйте в сценарии эхо, чтобы не отображать учетные данные в комментариях рабочего процесса. Например, при использовании файла сценария cmd.exe в содержимом сценария следует использовать « @echo off ».

  8. Для Executable введите исполняемый файл, который будет использоваться для запуска сценария.

    Если в вашей системной среде нет исполняемого файла сценария на своем пути, вы должны указать полный путь к нему. Например, « C: \ python37 \ python.exe ». Обратите внимание, что для использования Windows Powershell вам нужно всего лишь ввести « powershell.exe ».

    Примечание: Когда шаг выполняется, он записывает в систему временный файл сценария. Для некоторых исполняемых файлов сценариев требуется, чтобы файлы имели определенное расширение (например, powershell.exe требует расширения .ps1 для сценариев). Для исполняемого файла, которому требуется расширение файла, необходимо сопоставить исполняемый файл и расширение файла в системном свойстве embotics.workflow.embedded.script.extensions Commander. По умолчанию сопоставления по умолчанию уже существуют для следующих исполняемых файлов: powershell.exe = .ps1, python.exe = .py, cmd.exe = .bat . См. Раздел Установка свойств системы в Commander для получения подробной информации о том, как изменять свойства системы с помощью Commander.

  9. Для Script Contents введите тело файла сценария, который будет выполняться.
  10. Для аргументов сценария введите любые аргументы, которые вы хотите добавить постфиксом к сгенерированному файлу сценария.
  11. Если необходимо, продолжайте добавлять шаги, а когда закончите, нажмите Далее .
  12. Продолжите настройку рабочего процесса или модуля рабочего процесса, если это необходимо.

script.execute

Описание

объект script.execute (параметры объекта)

Этот метод позволяет запускать скрипт на хосте или событии.

Этот метод доступен пользователям любого типа. Разрешения на вызов метода можно отозвать в настройках роли пользователя. См. Дополнительные сведения в разделе «Роли пользователей».

Параметры

(объект) Параметры, содержащие идентификатор сценария для запуска и либо идентификатор хоста, либо идентификатор события.

Параметр Тип Описание
scriptid
(обязательно)
строка ID запускаемого скрипта.
Хостид строка ID хоста, на котором будет запущен скрипт.
эвентид строка Идентификатор события, на котором запускается скрипт.

Возвращаемые значения

(объект) Возвращает результат выполнения скрипта.

Объект Тип Описание
ответ строка Успешно ли был запущен сценарий.

Возможные значения: успешно или не удалось .

значение строка Вывод скрипта.
отладка объект Содержит объект отладки, если выполняется сценарий веб-перехватчика. Для других типов скриптов он содержит пустой объект.

Примеры

Запуск сценария веб-перехватчика

Запустить сценарий веб-перехватчика, который отправляет HTTP-запрос внешней службе.

Запрос:

  {
           «jsonrpc»: «2.0»,
           "метод": "script.execute",
           "params": {
               "scriptid": "4",
               "hostid": "30079"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }  

Ответ:

  {
           «jsonrpc»: «2.0»,
           "результат": {
               "response": "успех",
               "значение": "{\" статус \ ": \" отправлено \ ", \" отметка времени \ ": \" 1611235391 \ "}",
               "отладка": {
                   "журналы": [
                        {
                            "Уровень 3,
                            «мс»: 480,
                            "message": "[Скрипт веб-перехватчика] HTTP-статус: 200."
                        }
                    ],
                    «мс»: 495
               }
           },
           "id": 1
       }  
Запустить собственный сценарий

Запустите сценарий «ping» на хосте.

Запрос:

  {
           «jsonrpc»: «2.0»,
           "метод": "script.execute",
           "params": {
               "scriptid": "1",
               "hostid": "30079"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }  

Ответ:

  {
           "jsonrpc": "2.0 ",
           "результат": {
               "response": "успех",
               "value": "PING 127.0.0.1 (127.0.0.1) 56 (84) байтов данных. \ n64 байта из 127.0.0.1: icmp_req = 1 ttl = 64 time = 0.074 мс \ n64 байта из 127.0.0.1: icmp_req = 2 ttl = 64 time = 0,030 мс \ n64 байта из 127.0.0.1: icmp_req = 3 ttl = 64 time = 0,030 мс \ n \ n --- 127.0.0.1 статистика пинга --- \ n3 пакета передано, 3 получено, 0 % потери пакетов, время 1998 мс \ nrtt min / avg / max / mdev = 0,030 / 0,044 / 0,074 / 0,022 мс \ n ",
               "отладка": []
           },
           "id": 1
       }  

Источник

CScript :: execute () в ui / include / classes / api / services / CScript.

Leave a comment