Windows タスク スケジューラ内のタスクにより、サーバーが応答しなくなります

Windows タスク スケジューラ内のタスクにより、サーバーが応答しなくなります

AppPoolActivation.ps1URL を呼び出すための次のファイルがあります:-

[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'

AppPoolActivation.ps1つまり、PowerShell インスタンスを起動し、それが管理者として別の PowerShell インスタンスを起動し、それがスクリプトを実行するバッチ ファイルがあるということですか?

なぜフィールドをPowerShell.exe入力して引数として使用しないのでしょうか? Web リクエストを行うために PowerShell を管理者として実行する必要があるとは思えません。この問題が引き続き発生する場合は、デバッグがはるかに簡単になります。Program/ScriptTask Properties-ExecutionPolicy Bypass -File C:\T\AppPoolActivation.ps1

関連情報