Pages Menu
Rss
Categories Menu

Опубликовано | Нет комментариев

Отладка сценариев Windows PowerShell

Windows Server 2016 предоставил для отладки сценариев Windows PowerShell несколько улучшений:

  • Break All
  • Удалённое редактирование
  • Удалённая отладка
  • Отладка фонового задания
  • Отладка Runspaces
  • Удалённая отладка Desired State Configuration

Давайте посмотрим на каждый элемент более подробно.

Отладка сценариев

Break All

Break All (прервать всё) - очень полезная останавливающая работающий скрипт функция, дающая возможность перейти в отладчик и узнать как работает этот скрипт и каково текущее состояние переменных или других элементов. Поддержка была включена для консоли Windows PowerShell и ISE.

Чтобы использовать отладчик в сеансе консоли, нажмите Ctrl+Break

В Windows PowerShell ISE можно нажать Ctrl+B или, щёлкнуть в меню "Отладка" и выбрать команду "Break All".

Удалённое редактирование

В текущей Windows PowerShell ISE можно открывать и редактировать файл напрямую в удалённом сеансе Windows PowerShell. С помощью новой команды "PSEdit", вы можете непосредственно редактировать файлы как локально, так и в удалённых сеансах.

Следующий код показывает пример в действии:

[Cloud01]: PS C:\> PSEdit C:\WinDemo\Get-ComputerInfo.ps1

При выполнении PSEdit, он откроет файл в ISE, где можно внести изменения, сохранить их на удалённый компьютер и повторно выполнить код.

Удалённая отладка

Расширяя возможности удалённого редактирования, вы теперь можете отлаживать запущенный на удалённом сеансе с ISE скрипт.

Командлет Set-PsBreakpoint задаёт в коде точку останова, а затем можно использовать командлет Write-Debug и вывести полезную для использования в ваших сценариях, если вы сталкиваетесь с точкой останова, информацию. В этот момент вас переместит в отладчик, где потребуется посмотреть на имеющуюся информацию и выполнить некоторую дополнительную работу. Рисунок ниже показывает эту операцию.

код-удалённой-отладки

Пример кода удалённой отладки в Windows Powershell ISE

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

предупреждение-об-останове

Предупреждение об останове в удалённом сеансе

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

доступность-удалённой-отладки

Доступность удалённой отладки

Если удалённая отладка доступна, вы можете подключиться к сеансу с помощью командлета Enter-PSSession, который подключит вас непосредственно к отладчику.

действие-удалённого-отладчика

Удалённый отладчик в действии

Отладка фонового задания

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

Теперь, в Server 2016, Windows PowerShell вводит новый командлет Debug-Job, который даёт вам возможность отладить эти фоновые задания более эффективно. Следующий рисунок показывает использование этого командлета. Обратите внимание на то, как Debug-Job показывает вам линию и характеристики прерывания фоновой работы.

Debug-Job

Командлет Debug-Job, выводящий сообщение об ошибке в фоновом задании

Чтобы добраться до этого состояния останова, можно воспользоваться тем же командлетом Set-PSBreakPoint или Wait-Debugger. Они используются для «приостановки» сценария и ввода отладчика. Вы можете ввести эти командлеты в свой скрипт, а затем проверить состояние задания. Так вы узнаете, столкнулся ли он с точкой останова и готова ли отладка. Рисунок ниже показывает пример этого.

фоновое-задание

Состояние фонового задания

Отладка Runspaces

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

Подробнее. Больше информации о Runspaces и его использовании на http://blogs.technet.microsoft.com/heyscriptingguy/2015/11/26/beginning-use-of-powershell- runspaces-part-1/.

Следующий рисунок отображает создание Runspaces.

создание-Runspaces

Создание Runspaces

Для отладки Runspaces вам необходимо получить его «ID», рисунок ниже показывает доступные runspaces, а затем ввести сеанс отладки с помощью командлета Debug-Runspace.

отладка-runspace

Отладка runspace

Первый runspace, ID 1, всегда исходный сеанс Windows PowerShell, в котором вы находитесь. Для более глубокого изучения runspacees в вашей среде, используйте предыдущие ссылки.

Оставить комментарий

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

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.


↓