
Tengo el siguiente AppPoolActivation.ps1
archivo, 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.bat
archivo para llamar al AppPoolActivation.ps1
archivo 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:-
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: -
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.ps1
el script?
¿Por qué no simplemente lo pones PowerShell.exe
en Program/Scriptel campo Task Propertiesy lo usas -ExecutionPolicy Bypass -File C:\T\AppPoolActivation.ps1
como 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.