Una tarea dentro de mi programador de tareas de Windows hará que mi servidor deje de responder

Una tarea dentro de mi programador de tareas de Windows hará que mi servidor deje de responder

Tengo el siguiente AppPoolActivation.ps1archivo, para llamar a una URL: -

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

y escribí el siguiente app.batarchivo para llamar al AppPoolActivation.ps1archivo anterior: -

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

Luego, dentro del programador de tareas de Windows de mi servidor Windows 2012, defino una tarea diaria que se ejecuta cada 15 minutos durante 1 día, por lo que principalmente siempre se ejecutará cada 15 minutos, y defino esta tarea para llamar al archivo .bat, como seguir:-

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Ahora, cuando definí la tarea por primera vez, funcionó bien durante aproximadamente 5 horas, pero noté que después de 10 a 12 horas el servidor será muy lento hasta que dejará de responder. Ahora reviso el administrador de tareas en el servidor y encuentro que hay Habrá muchas instancias de Windows Power Shell y el host de Windows de la consola ejecutándose, de la siguiente manera: -

ingrese la descripción de la imagen aquí

Entonces, ¿alguien puede aconsejarme cómo puedo superar este problema? Quiero decir, ¿por qué habrá muchos casos en los que se ejecutará el host de Windows Power Shell y la consola de Windows? ¿Hay alguna manera de evitar que esto suceda y evitar que mi servidor se vuelva muy lento debido al cronograma de tareas? Teniendo en cuenta que nunca he tenido ningún problema en este servidor desde hace muchos años, el problema comenzó cuando creé esta tarea programada...

Respuesta1

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

Entonces, ¿tiene un archivo por lotes que inicia la instancia de PowerShell, que inicia otra instancia de PowerShell como administrador y que ejecuta AppPoolActivation.ps1el script?

¿Por qué no simplemente lo pones PowerShell.exeen Program/Scriptel campo Task Propertiesy lo usas -ExecutionPolicy Bypass -File C:\T\AppPoolActivation.ps1como argumento? Dudo que necesites ejecutar PowerShell como administrador para realizar una solicitud web. Y si este problema persiste, la depuración será mucho más fácil.

información relacionada