Задача внутри моего планировщика задач Windows заставит мой сервер перестать отвечать
У меня есть следующее 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 ответ
"%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 от имени администратора, чтобы сделать веб-запрос. И если эта проблема все еще будет сохраняться, это облегчит ее отладку.