
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 작업 스케줄러 내에서 1일 동안 15분마다 실행되는 일일 작업을 정의하므로 주로 항상 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
넣고 인수로 사용 하지 않겠습니까 ? 웹 요청을 하려면 PowerShell을 관리자 권한으로 실행해야 할지 의문입니다. 그리고 이 문제가 계속 지속된다면 디버깅이 훨씬 쉬워질 것입니다.Program/ScriptTask Properties-ExecutionPolicy Bypass -File C:\T\AppPoolActivation.ps1