Фоновые задания в Windows PowerShell 2.0

Фоновые задания в Windows PowerShell 2.0

Фоновые задания в Windows PowerShell 2.0

Категория: Windows / Функционал Windows
Добавил:
access_timeОпубликовано: 15-10-2015
visibilityПросмотров: 11 846
chat_bubble_outlineКомментариев: 1

Привет друзья! Меня зовут Ro8 и сегодня мы продолжим уроки по работе с PowerShell 2.0
В данной статье рассмотрим работу с фоновыми заданиями в Windows PowerShell 2.0
Для работы с фоновыми заданиями используются командлеты представленные ниже

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df9610bc9e6

У нас есть компьютер с предустановленной Windows 7 (x64) Максимальная
Запустим на данном компьютере экземпляр Windows PowerShell
Выведем список фоновых заданий введя команду Get-Job
Как видим, фоновых заданий на данной машине не запущено

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df9610e0e53

Запустим какое-нибудь фоновое задание используя команду Start-Job
Например получим список служб начинающихся на букву S и отсортируем их по параметру Status в фоновом режиме
Выполним команду Start-Job -ScriptBlock {get-service s* | sort-object status} 

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df961105213

После выполнения команды видим, что фоновое задание выполняется под идентификатором id 1. Также можно видеть, что данному фоновому заданию присвоено имя Job1

 

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df96111e8b6

В фоновом режиме также можно запускать и сценарии. На флеш-накопителе (под буквой E) подключенном к машине с Windows 7 находятся сценарий Servive_status.ps1а также видео файл Vabank_2.mkv

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df96113821a

Запустим сценарий Service_status.ps1 в фоновом режиме выполнив команду Start-Job E:Service_status.ps1

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df961157bc0

Как видим, сценарий выполняется в фоновом режиме

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df961171239

Выполним команду Get-Job для просмотра запущенных фоновых заданий
Как видим, у нас есть два выполненных фоновых задания с идентификаторами id 1 и 3

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df96119077f

Посмотрим результат выполнения фонового задания с идентификатором id 1 введя команду Receive-Job -Name Job1

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df9611ab112

Результатом выполнения фонового задания с идентификатором id 1 является вывод служб начинающихся на букву S и отсортированных по параметру Status

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df9611c13da

Запустим еще одно фоновое задание, которое скопирует видео файл Vabank_2.mkv с флеш-накопителя в папку Films
Выполним команду
Start-Job -ScriptBlock {copy-item E:Vabank_2.mkv -destination C:UsersRo8DocumentsFilms}

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df9611e9df2

Как видим, данное фоновое задание с идентификатором id 5в процессе выполнения

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df96120c589

Выполним команду Get-Job для просмотра фоновых заданий. Фоновое задание с идентификатором id 5в процессе выполнения

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df961225718

Остановим выполнение данного фонового задания выполнив команду Stop-Job -Name Job5, где Job5— имя фонового задания

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df961242639

Выполнив команду Get-Job видим, что фоновое задание с именем Job5остановлен

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df96125eeb4

Выполним еще раз команду
Start-Job -ScriptBlock {copy-item E:Vabank_2.mkv -destination C:UsersRo8DocumentsFilms}. Фоновое задание запустилось с идентификатором id 7

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df96127b3b2

Далее выполним команду Wait-Job -id 7. После выполнения команды Wait-Job -id 7 для продолжения работы с PowerShell нужно дождаться завершения выполнения фонового задания с идентификатором id 7

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df9612968dd

Выполнение фонового задания с идентификатором id 7завершено

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df9612b28c0

Введем команду Get-Job и видим, что за данный сеанс работы с PowerShell у нас есть четыре фоновых задания с идентификаторами id 1,3,5 и 7

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df9612cdbbd

Для удаления фоновых заданий используется командлет Remove-Job
Удалим к примеру фоновое задание с идентификатором id 1 введя команду Remove-Job -Name Job1, где  Job1— имя фонового задания

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df9612ea3b4

Выполнив команду Get-Job видим, что фоновое задание с идентификатором id 1отсутствует

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df961312ef8

Удалим оставшиеся фоновые задания с идентификаторами id 3,5 и 7 введя команду Remove-Job -id 3,5,7

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df96133323f

Выполняем команду Get-Jobи видим, что все фоновые задания удалены

d184d0bed0bdd0bed0b2d18bd0b5 d0b7d0b0d0b4d0b0d0bdd0b8d18f d0b2 windows powershell 2 0 65df961355fc6

tagsКлючевые слова
     Рекомендуем другие статьи по данной теме
Ctrl
Enter
Заметили ошибку

Выделите и нажмите Ctrl+Enter

Windows, Функционал Windows
Фоновые задания в Windows PowerShell 2.0