У меня есть следующий файл AppPoolActivation.ps1 , чтобы вызвать URL:-

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$request = [System.Net.WebRequest]::Create("https://IPADDRESS***/")
$response = $request.GetResponse()
$response.Close()

и я написал следующий файл app.bat для вызова вышеуказанного файла AppPoolActivation.ps1 :

"%SYSTEMROOT%\system32\windowspowershell\v1.0\powershell.exe" -Command Start-Process "$PSHOME\powershell.exe" -Verb RunAs -ArgumentList "'-NoExit %~dp0\AppPoolActivation.ps1'

Затем в моем планировщике задач Windows Server 2012 Windows я определяю ежедневную задачу, которая запускается каждые 15 минут в течение 1 дня, так что в основном она будет выполняться каждые 15 минут, и я определяю эту задачу для вызова файла .bat, как следовать:-

Теперь, когда я впервые определяю задачу, она работала хорошо около 5 часов, но я заметил, что через 10-12 часов сервер будет работать очень медленно, пока не перестанет отвечать, теперь я проверяю диспетчер задач на сервере и обнаруживаю, что там будет много экземпляров Windows Power Shell и консоли Windows, работающих следующим образом:

так может кто-нибудь посоветовать, как мне преодолеть эту проблему? Я имею в виду, почему будет много экземпляров Windows Power Shell и консоли Windows, работающей? и есть ли способ предотвратить это и предотвратить слишком медленную работу моего сервера из-за расписания задач? если учесть, что много лет назад на этом сервере я никогда не сталкивался с какими-либо проблемами, проблема началась, когда я создал эту задачу расписания ...

1 ответ1

1
"%SYSTEMROOT%\system32\windowspowershell\v1.0\powershell.exe" -Command Start-Process "$PSHOME\powershell.exe" -Verb RunAs -ArgumentList "'-NoExit %~dp0\AppPoolActivation.ps1'

Итак, у вас есть командный файл, который запускает экземпляр powershell, который запускает другой экземпляр powershell от имени администратора, который выполняет сценарий AppPoolActivation.ps1 ?

Почему бы просто не поместить PowerShell.exe в поле « Программа / сценарий» в свойствах задачи и использовать -ExecutionPolicy Bypass -File C:\T\AppPoolActivation.ps1 качестве аргумента? Я сомневаюсь, что вам нужно запустить PowerShell от имени администратора, чтобы сделать веб-запрос. И если эта проблема все еще будет сохраняться, это облегчит ее отладку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .