Denis sangat dekat. Tetapi solusi yang sebenarnya adalah sedikit bertukar. Karena PowerShell tidak dapat memeriksa CPU selama durasi, hanya penggunaan saat ini, cek SQL Server harus digunakan.
Jadi, langkah pertama pekerjaan saya adalah menjalankan skrip PowerShell yang memeriksa untuk melihat apakah waktu sistem saat ini antara dua kendala waktu. Jika ya, maka skrip powershell tidak melakukan apa pun. Pekerjaan SQL Server mengartikan ini sebagai sukses.
Kemudian Pekerjaan bergerak ke langkah terakhir dan melakukan permintaan pembaruan.
Namun, jika waktu saat ini di luar kisaran saya melakukan Start-Time -s 600
untuk menjeda skrip PowerShell selama 10 menit (mensimulasikan "sekali 5 - 10 menit persyaratan). Ini adalah untuk menjaga agen SQL server dari terus-menerus mencoba menjalankan pekerjaan ini .
Setelah 10 menit, skrip PowerShell melempar kesalahan khusus. Karena saya miliki $ErrorActionPreference = "Stop"
di awal skrip, skrip PowerShell berhenti dijalankan setelah kesalahan. Langkah ini sangat penting.
Karena PowerShell berhenti dan tidak kembali, SQL Server Agent menafsirkan ini sebagai kegagalan dan tidak akan melanjutkan ke langkah yang melakukan permintaan pembaruan.
PS Kalian menuntun saya ke arah yang benar. Jika saya memiliki cukup reputasi, saya akan membesarkan hati kalian.
Sunting: Menambahkan Skrip Powershell
$ErrorActionPreference = "Stop"
$StartTime = Get-Date "12:00 AM"
$EndDate = Get-Date "05:00 AM"
$CurrentDate = Get-Date
$ExecuteJob = $StartTime -lt $CurrentDate -and $EndDate -gt $CurrentDate
if(!$ExecuteJob){
Start-Sleep -s 600
throw "Current Time not within Server downtime"
}