Изолиране на прокси заявка в PowerShell 5.1 с Start-Job
Използвайте обикновена фонова задача, за да изолирате уеб заявка в Windows PowerShell 5.1 от по-ранни мрежови промени в процеса.
В сесия на Windows PowerShell 5.1 по-ранен компонент може да промени мрежовото състояние на .NET в процеса. Обикновена фонова задача Start-Job осигурява отделен процес на PowerShell за следваща уеб операция.
$job = Start-Job -ArgumentList $uri, $proxyUri -ScriptBlock {
param($destination, $intermediary)
$response = Invoke-WebRequest -Uri $destination `
-Proxy $intermediary -UseBasicParsing -TimeoutSec 30
$response.Content
}
try {
Receive-Job -Job $job -Wait -ErrorAction Stop
}
finally {
Remove-Job -Job $job
}
uri и proxyUri са стойности, предоставени от приложението. За публичен HTTP тест списъкът с HTTP прокси сървъри предлага кандидатни междинни адреси; дръжте избраната крайна точка постоянна, когато сравнявате процеси. Подавайте и нужните данни за достъп до прокси чрез предвидените входни данни на задачата и параметри на заявката. Живият обект на уеб сесия от родителя не се използва повторно автоматично.
Задачата има собствено състояние на сесията; заредете нужните функции или модули там. Изходът ѝ преминава през граница на процес, затова умишленото връщане на съдържанието е по-просто от допускането, че десериализиран отговор се държи като оригиналния жив обект.
Start-ThreadJob използва друг модел на изпълнение и не осигурява същата изолация на процеса. Отделен процес също не поправя невалидна крайна точка на прокси или мрежова политика. Използвайте тази граница, когато споделеното състояние на процеса е съществената разлика.